????????在開始發(fā)送Silent SMS的時(shí)候,就立刻啟動(dòng)ccch_scan記錄所有Paging的TMSI。通常,從開始發(fā)短信,到空中出現(xiàn)Paging信息,最快3秒鐘,多數(shù)情況6-7秒鐘。繁忙的基站每秒廣播20多次尋呼。所以我們把TMSI隊(duì)列深度設(shè)為300是足夠的,大約可記錄從發(fā)送Silent SMS開始15秒內(nèi)的所有被呼叫的TMSI,這300個(gè)里面一定有我們的目標(biāo)的TMSI,通常是在前面開始部分。隊(duì)列到300為止,我們就是在這300個(gè)里面找出來重復(fù)次數(shù)大于我們?cè)O(shè)定次數(shù)的TMSI并打印出來。數(shù)據(jù)結(jié)構(gòu)
struct _tmsis_ {
uint8_t tmsi[4];
char cnt;
} tmsis[300];
列出TMSI的源代碼
void tmsi_match(uint8_t *t)
{
if(app_state.finding==1){
int i;
int f=0;
for(i=0; i < app_state.tmsicnt; i++){
if(!memcmp(t, tmsis[i].tmsi, 4)) {
tmsis[i].cnt += 1;
f=1;
if(tmsis[i].cnt > app_state.mincnt){
printf("Possible TMSI: #%d, \t%s, %d times\n", i, osmo_hexdump(t,4), tmsis[i].cnt);
}
}
}
if((f==0)&&(app_state.tmsicnt<300)){//隊(duì)列深度?
app_state.tmsicnt += 1;
memcpy(tmsis[i].tmsi,t,4);
tmsis[i].cnt = 1;
printf("New TMSI:#%d, %s \tTotal: %d\n", i, osmo_hexdump(t,4), app_state.tmsicnt);
}
return;
}
if(!memcmp(t, app_state.wanted_tmsi, 4)) {
app_state.tmsi_matched = 1;
printf("TMSI Match %s\n", osmo_hexdump(t,4));
}
}
????????我們給ccch_scan新增加一個(gè)參數(shù):-f paging次數(shù)。
????????國(guó)內(nèi)不少地方為了提高接通率,當(dāng)有Mobile Terminated Service要傳遞的時(shí)候是重復(fù)發(fā)出尋呼信息的,有的是Paging兩次,多的甚至連續(xù)尋呼四次。這樣如果你連續(xù)向目標(biāo)手機(jī)發(fā)送10次短信,可能會(huì)偵聽到20-40次Paging。所以你實(shí)戰(zhàn)中你需要先偵聽網(wǎng)絡(luò)的PCH來以確定當(dāng)?shù)氐脑O(shè)置情況。
static int l23_cfg_print_help()
{
printf("\nApplication specific\n");
printf("? -k --kc KEY ? ? ? ? ? Key to use to try to decipher DCCHs\n");
printf("? -t --tmsi TMSI? ? ? ? Filter assignments with specified TMSI (paging only)\n");
printf("? -f --count Filter paging TMSI\n");
return 0;
}
static int l23_cfg_handle(int c, const char *optarg)
{
switch (c) {
case 'k':
if (osmo_hexparse(optarg, app_state.kc, 8) != 8) {
fprintf(stderr, "Invalid Kc\n");
exit(-1);
}
break;
case 't':
if (osmo_hexparse(optarg, app_state.wanted_tmsi, 4) != 4) {
fprintf(stderr, "Invalid TMSI\n");
exit(-1);
}
app_state.finding = 0;
break;
case 'f':
app_state.finding = 1;
app_state.mincnt= atoi(optarg);
break;
default:
return -1;
}
return 0;
}
????????運(yùn)行ccch_scan來開始篩選TMSI,我們要求程序列出Paging超過16次的TMSI:
????????同時(shí)顯示發(fā)送和篩選兩個(gè)窗口,有的TMSI隨著每次短信發(fā)送有節(jié)奏的出現(xiàn),很快有一個(gè)TMSI就引起了我們的注意:818003B5,隨著不斷的發(fā)送短信,還不到10次短信,我們已經(jīng)可以確定目標(biāo)TMSI就是它。而且可以看出當(dāng)前網(wǎng)絡(luò)每傳遞一次短信就偵聽到4次Paging:
????????我們拿出目標(biāo)手機(jī)來確認(rèn)一下,果然是這個(gè)TMSI。注意,為了工作方便,朝陽群眾大都隨身攜帶這種已開啟Net Monitor的Nokia 3110手機(jī):
電子發(fā)燒友App




















評(píng)論