当前位置: 首页 > 工具软件 > OSCP > 使用案例 >

oscp学习(一)

闾丘玮
2023-12-01

oscp学习

学习方法和阶段目标

  1. 掌握课程内容,完成相关联系
  2. 攻击实验环境靶机联系(至少八十台)大多通过的在100台以上
  3. 联系渗透测试报告的编写(英文)官方有模板,(如果相关技术人员可以通过你的报告复现出来那就算是合格)那么报告就不得错过重要得环节和信息。
    1. 要注意考试不限于教材内容(公开得漏洞量级超过两万个不限于教材涵盖得漏洞)
  4. try harder
    1. 重复联系,确保自己得熟练度
    2. 尝试独立完成实验环境靶机得攻击
    3. 遇到问题,尽力搜索、阅读相关资料(补足短板)
    4. 适时寻求帮助(模糊得帮助,比如缓冲区溢出方向有问题),根据方向性得提醒,独立完成实验机。
    5. 做好笔记,积累经验,总结思路。

五分钟方法

如果一件事情五分钟内完不成就要进行分解。
这样你的注意力只需要保持五分钟。

第一节课工欲善其事必先利其器(将你的kali变成趁手)

1.修改kali密码

#
passwd

2.kali对于cpu不敏感对于内存比较敏感

3.共享文件夹

4.whoami

whoami监测自己权限

2.kali的菜单(the kali menu)

2.1kali文档

Kali Docs | Kali Linux Documentation

2.2论坛的礼节

不要重复发帖,提问前先搜索

2.3kali集成的工具如何使用(网址 tools.kali.org)

这个网站可以查询apt下载的工具
有些问题复现可能是因为程序崩溃原因导致的,你可以在论坛上提问

2.4kalilinux基础知识(things around kali)

/bin/目录是做什么的

是Binary的缩写,存放经常使用的命令;

这个目录是一个基础目录,在任意目录下都可以

/sbin/目录

Super User的意思,存放系统管理员使用的系统管理程序;

/etc/目录(配置文件)

etc是一个目录,用于存放系统主要的配置文件,来源于法语“et cetera”;该目录下的文件属性可以让一般用户进行查阅,但是只有root用户有权利进行修改。

/tmp/(零时文件)

策略中会定时删除

/usr/bin/

/usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据;所有系统默认的软件都会放置到/usr, 系统安装完时,这个目录会占用最多的硬盘容量

/usr/bin/

绝大部分的用户可使用指令都放在这里。请注意到他与/bin的不同之处。(是否与开机过程有关)

优质博客

2022,OSCP通关攻略 - 知乎 (zhihu.com)

进攻性网络安全专家 OSCP 认证培训(这些是需要缓存的)

oscp课程介绍

24小时黑进五台设备(其中一台是缓冲区溢出)

需要的基础

1.脚本知识最好是bash或者python

2.网络基础 例如tcp、ip
3.linux基础理解,

4.try harder ,尝试更难得事务

pwk课程和这个课程独立这个课程是pwk课程得前置课程

前置课程学习模块介绍

1.安装kali

2.黑客攻击得五个步骤

3.扫描和枚举
4.netcat

5.缓冲区溢出(开发代码)

6.后渗透
7.capstone实战

8.课程会很难

第一课kali安装和注意事项

实验过程中要注意保存快照和笔记

注意要熟悉考试版本得kali而不是最新得工具之间可能会有出入

第二课kali基础指令(快速阐述)

快速阐述

pwd
#输出当前工作目录
man +指令
#介绍手册,类似于help
ls 
#查看当前目录的文件和文件夹
cd  change directory
#改变当前目录
mkdir
# 创建目录 make directory
rmdir
# 删除目录 remove directory
cp 
#copies files and folders 复制文件或者目录
mv 
#move files and folders to new location 移动文件或者文件夹到新的位置
locate 
#locate allow you search  for specific folders and files 
#搜索明确的文件或者文件夹
adduser
#adduser allows you to add user as it
#添加用户
su
#switch user
#切换用户
sudo
#sudo is to elevate your rights to that root 
#sudo 将你的权限提升到 root
echo
#echo echoes a commend or syntax that you
#echo 回显输入的指令或者语法
cat
#cat concatenate it just read back a file that you select 
#cat 链接 打开文件
nano 
#nano is a text editer using the commend 
#nano 是一个使用命令行的文本编辑器(有代码
chmod
#chomd  is for change mode that is for changing file permissions
#chome  更改文件权限
ifconfig
#ifconfig it allows  you to see some netwark information of you mechine
#查看您设备的网络信息
ping
#ping allows you to ping another device in the system
#允许你链接环境中的另一个设备
updatedb
#更新文件目录树

ls

ls 地址
可以在任何工作目录查看该地址的文件和文件夹

ls -la 查看文件的长文本状态

ls -la和ll的区别
ls -la可以看到隐藏文件

前面有一个.的就是隐藏文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IO9eHR61-1676875877183)(E:\笔记本\图片\image-20230106170201674.png)]

cp实例

创建文件并移动

在主目录下创建文件

┌──(kali㉿kali)-[~]
└─$ touch 1.txt 
──(kali㉿kali)-[~]
└─$ cp 1.txt /tmp

┌──(kali㉿kali)-[~]
└─$ ls /tmp      
1.txt


mv

mv要注意如果你移动到了不应该移动的位置可能会导致文件被删除
语法和cp相同

adduser实例

添加一个一般用户

# adduser kk //添加用户kk

为添加的用户指定相应的用户组

# adduser -g root kk //添加用户kk,并指定用户所在的组为root用户组

创建一个系统用户

# adduser -r kk //创建一个系统用户kk

为新添加的用户指定/home目录

# adduser -d /home/myf kk //新添加用户kk,其home目录为/home/myf
//当用户名kk登录主机时,系统进入的默认目录为/home/myf

locate实例

updatedb

locate 文件名 然后就可以调出与之文件相关的路径

adduser

adduser 用户名
可以创建用户 (被创建的用户不能再创建用户详情参考一下链接
[Linux]创建新用户及用户权限 - 知乎 (zhihu.com)

cat 以及 >> 和 > 的区别

┌──(kali㉿kali)-[/tmp]
└─$ echo  1 >> 1.txt
                                                                                                                                             
┌──(kali㉿kali)-[/tmp]
└─$ cat 1.txt 
1
                                                                                                                                             
┌──(kali㉿kali)-[/tmp]
└─$ echo 2 >>1.txt  
                                                                                                                                             
┌──(kali㉿kali)-[/tmp]
└─$ cat 1.txt 
1
2

┌──(kali㉿kali)-[/tmp]
└─$ echo 1 >1.txt 
                                                                                                                                             
┌──(kali㉿kali)-[/tmp]
└─$ cat 1.txt
1

#总结来说就是 
>> 会创建一个新行 add new line to the very

>会覆盖文件

chmod 实例

#chmod +x  添加执行权限
#chmod 777  分别为  所属用户  所属组   user添加权限
┌──(kali㉿kali)-[/tmp]
└─$ ls -la |grep 1.txt
-rwxr-xr-x  1 kali kali     2 Jan  8 21:08 1.txt
                                                                                                                                             
┌──(kali㉿kali)-[/tmp]
└─$ chmod 777 1.txt 
                                                                                                                                             
┌──(kali㉿kali)-[/tmp]
└─$ ls -la |grep 1.txt
-rwxrwxrwx  1 kali kali     2 Jan  8 21:08 1.txt

ping windows 和linux的不同

windows只会ping四次
而linux会一直ping直到用 ctrl +c 让其终止

第三课 Bash脚本在kali linux (bash Scropting in kali linux)

pingsweep存活主机发现脚本

#!/bin/bash
#这里有坑要严格按照这个空格写
if [ "$1" == "" ]
then
echo "Usage: ./pingsweep.sh [Network]"
echo "Example: ./pingsweep.sh 192.168.1"
else
for ip in `seq 1 254`; do
ping -c 1 $1.$ip | grep "64 bytes" | cut -d " " -f 4 | sed "s/.$//" &
done
fi

#将探测到的脚本存到文本中
./pingsweep.sh 192.168.0 > iplist.txt 
#然后用nmap 批量进行扫描
for ip in $(cat iplist.txt ) ; do nmap -Pn $ip ; done 

这仅仅只是一个思路,我们可以做很多这样的事情比如扫c段啊等等等等

cut

cut -d " " -f 4 #这个意思就是以空格为分割第四段 提取出来

选项与参数:

-d:分隔符,按照指定分隔符分割列。与 -f 一起使用

-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思(列号,提取第几列)

-c:以字符 (characters) 的单位取出固定字符区间

-b:以字节为单位进行分割

kali linux services start and stop

开启apache2 服务, 并且让其长期存活实例 和关闭

service apache2 start
#开启服务
 systemctl enable apache2
#systemctl enable  设置下次开机时自启
#关闭服务
service apache2 stop   
#通过这个可以查看开启的服务,减号代表关闭 +号代表开启
┌──(kali㉿kali)-[~/Desktop]
└─$ service --status-all |grep apache2
 [ - ]  apache2


通过开启的apache服务通过访问其目录下的文件 var/www/html

┌──(kali㉿kali)-[/etc]
└─$ ls /var/www/html 
index.html  index.nginx-debian.html  test.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jA9UqTRi-1676875877185)(E:\笔记本\图片\image-20230112143913086.png)]

开启ssh服务

┌──(kali㉿kali)-[/etc]
└─$ service ssh start
#开启ssh服务
┌──(kali㉿kali)-[/etc]
└─$ service --status-all |grep ssh
 [ + ]  ssh

┌──(root㉿kali)-[/etc]
└─# netstat -antp |grep ssh     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      79804/sshd: /usr/sb 
tcp6       0      0 :::22                   :::*                    LISTEN      79804/sshd: /usr/sb 

为msf启用Postfresql数据库服务使其效率更高

1.msfconsole  开启msf
2.service postgresql start  开启postgresql 服务
3.systemctl enable postgresql

information gathering (信息收集)

信息 收集工具

#google
#Exploit-DB/Google Hacking DB
#WHOIS
#Netcraft
#theharvester

google语法

(25条消息) 谷歌语法(详解+举例)_Yn8rt的博客-CSDN博客_谷歌语法

site实例

ps 连接符 - 网址 这样可以在结果中筛选例如

site:cnn.com -site:www.cnn.com

site +网址
指定域名

指定域名,如:site:edu.cn 搜索教育网站

google hack database (https://www.exploit-db.com/)

shodan 和谷歌hacking database

hacking database

hacking database 是找威胁情报和exp的,扫到了配置信息就可以用这个进行实验。

shodan

是一个搜索引擎

theHarvester(在搜索引擎中收集其用户信息、邮件域名)

theHarvester工具是一个python脚本,可以借助流行的搜索引擎和其他一些站点来搜索电子邮件地址、主机以及子域站点等。

theHarvester -d 域名.com -l 10 -b baidu --filename 1.xml



┌──(toor㉿localhost)-[~]
└─$ theHarvester -hh

*******************************************************************
*  _   _                                            _             *                                 
* | |_| |__   ___    /\  /\__ _ _ ____   _____  ___| |_ ___ _ __  *                                 
* | __|  _ \ / _ \  / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *                                 
* | |_| | | |  __/ / __  / (_| | |   \ V /  __/\__ \ ||  __/ |    *                                 
*  \__|_| |_|\___| \/ /_/ \__,_|_|    \_/ \___||___/\__\___|_|    *                                 
*                                                                 *                                 
* theHarvester 3.2.2                                              *                                 
* Coded by Christian Martorella                                   *                                 
* Edge-Security Research                                          *                                 
* cmartorella@edge-security.com                                   *                                 
*                                                                 *                                 
*******************************************************************                                 
                                                                                                    
                                                                                                    
usage: theHarvester [-h] -d DOMAIN [-l LIMIT] [-S START] [-g] [-p] [-s] [--screenshot SCREENSHOT]
                    [-v] [-e DNS_SERVER] [-t DNS_TLD] [-r] [-n] [-c] [-f FILENAME] [-b SOURCE]

theHarvester is used to gather open source intelligence (OSINT) on a company or domain.#theHarvester 用于收集公司或域的开源情报 

optional arguments:
  -h, --help            show this help message and exit
  -d DOMAIN, --domain DOMAIN
                        Company name or domain to search.
  -l LIMIT, --limit LIMIT
                        Limit the number of search results, default=500.
  -S START, --start START
                        Start with result number X, default=0.
  -g, --google-dork     Use Google Dorks for Google search.
  -p, --proxies         Use proxies for requests, enter proxies in proxies.yaml.
  -s, --shodan          Use Shodan to query discovered hosts.
  --screenshot SCREENSHOT
                        Take screenshots of resolved domains specify output directory:
                        --screenshot output_directory
  -v, --virtual-host    Verify host name via DNS resolution and search for virtual hosts.
  -e DNS_SERVER, --dns-server DNS_SERVER
                        DNS server to use for lookup.
  -t DNS_TLD, --dns-tld DNS_TLD
                        Perform a DNS TLD expansion discovery, default False.
  -r, --take-over       Check for takeovers.
  -n, --dns-lookup      Enable DNS server lookup, default False.
  -c, --dns-brute       Perform a DNS brute force on the domain.
  -f FILENAME, --filename FILENAME
                        Save the results to an HTML and/or XML file.
  -b SOURCE, --source SOURCE
                        baidu, bing, bingapi, bufferoverun, certspotter, crtsh, dnsdumpster,
                        duckduckgo, exalead, github-code, google, hackertarget, hunter, intelx,
                        linkedin, linkedin_links, netcraft, otx, pentesttools, projectdiscovery,
                        qwant, rapiddns, securityTrails, spyse, sublist3r, threatcrowd,
                        threatminer, trello, twitter, urlscan, virustotal, yahoo

TCP and UDP

做了一个tcp和udp实验
tcp稳定链接

扫描器nesses

nmap

null扫描

nmap -sn 192.168.86.0/24
#request
┌──(kali㉿kali)-[~]
└─$ nmap -sn 192.168.86.0/24
Starting Nmap 7.92 ( https://nmap.org ) at 2023-01-31 22:08 EST
Nmap scan report for 192.168.86.2
Host is up (0.00057s latency).
Nmap scan report for 192.168.86.132
Host is up (0.00018s latency).
Nmap scan report for 192.168.86.135
Host is up (0.0018s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 4.93 seconds

null其实指的是标志位为空

这个标志位是tcp数据包的一个类型,指的是rst类

什么是RST

它的功能在于A与B创建了TCP连接,然后其中一端突然异常了,给另一方发送RST包,断开TCP连接,因为能够中断正常的连接,所以也衍生出了RST攻击

NULL扫描的功能

主要是浅显的判断操作系统类型的,如果发送RST包,对方系统没有返回包,那就是linux系统,反之,要是返回了数据,则是windows系统。

NULL扫描的好处

隐蔽性强,不会被防火墙和包过滤器的端口监视功能发现

坏处

就是比较粗略,只能作为辅助判断

traceroute

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

常用指令

-Pn Treat all hosts as online -- skip host discovery
将所有主机视为存活,跳过主机发现
-A: Enable OS detection, version detection, script scanning, and traceroute
启用扫描系统、版本、脚本扫描、traceroute功能扫描
-VV :显示扫描的过程
-sS:TCP SYN SCAN   隐形扫描
-T	:速度 1到4 四最快
-p  端口 或者范围 1-10 :查询特定端口 
-p- 常见端口所有端口
-oA  地址 :结果输出为xml
-oN 结果输出为nmap文件

#脚本相关
--script=all或者详细的
--script-args= <n1=v1,[n2=v2...]>为脚本提供默认参数
--sCript- args-file=filename使用文件来为脚本提供参数
-- script-updated更新脚本数据库
--script-trace显示脚本执行过程中所有数据的发送与接收
--script-help= <scripts>显示脚本的帮助信息
--max-retries <tries>: Caps number of port scan probe retransmissions.
Caps端口扫描探针重传次数。
#探测模板
 nmap -Pn -sS --stats-every 3m --max-retries 1  --defeat-rst-ratelimit -T4 -p1-65535 -oN /root/fule10.txt 192.168.86.1

┌──(root㉿kali)-[/home/kali]
└─# nmap -Pn -sS --stats-every 3m --max-retries 1  --defeat-rst-ratelimit -T4 -p1-65535 -oN /root/fule10.txt 192.168.86.1
Starting Nmap 7.92 ( https://nmap.org ) at 2023-02-14 22:33 EST
Nmap scan report for bogon (192.168.86.1)
Host is up (0.00038s latency).
Not shown: 65525 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
1139/tcp  open  cce3x
1140/tcp  open  autonoc
1483/tcp  open  afs
6379/tcp  open  redis
7250/tcp  open  unknown
9128/tcp  open  unknown
49668/tcp open  unknown
MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 88.41 seconds


10-Scanning with Metasploit

# msfconsole
进入控制台
msf6 > search portscan
#搜索扫描端口这一类的指令
Matching Modules
================

   #  Name                                              Disclosure Date  Rank    Check  Description
   -  ----                                              ---------------  ----    -----  -----------
   0  auxiliary/scanner/portscan/ftpbounce                               normal  No     FTP Bounce Port Scanner
   1  auxiliary/scanner/natpmp/natpmp_portscan                           normal  No     NAT-PMP External Port Scanner
   2  auxiliary/scanner/sap/sap_router_portscanner                       normal  No     SAPRouter Port Scanner
   3  auxiliary/scanner/portscan/xmas                                    normal  No     TCP "XMas" Port Scanner
   4  auxiliary/scanner/portscan/ack                                     normal  No     TCP ACK Firewall Scanner
   5  auxiliary/scanner/portscan/tcp                                     normal  No     TCP Port Scanner
   6  auxiliary/scanner/portscan/syn                                     normal  No     TCP SYN Port Scanner
   7  auxiliary/scanner/http/wordpress_pingback_access                   normal  No     Wordpress Pingback Locator

#使用搜索的模组
use auxiliary/scanner/portscan/syn
#查看需要的参数
show options
#修改参数
set THREADS 10
#执行模块
run

这个模块就是通过这个搜索然后发现漏洞或者工具然后进行学习

 类似资料: